gpt4 book ai didi

ajax - mvc 部分 View ajax 更新将部分 View 作为页面返回

转载 作者:行者123 更新时间:2023-12-04 14:47:32 25 4
gpt4 key购买 nike

我有部分观点认为,将项目添加到数据库后需要更新。

Index.cshtml:

@using (Ajax.BeginForm("Index", "WinEntry", new AjaxOptions { HttpMethod = "POST",      UpdateTargetId = "wingrid", InsertionMode = InsertionMode.Replace}))
{
@Html.Partial("_winVenue")
@Html.Partial("_singleWin")
}
<div id="wingrid">
@Html.Partial("_wingrid")
</div>

_singleWin 有提交按钮

Controller :

[HttpPost]
public ActionResult Index(Win win)
{
win.dealerId = "1234567890";
win.posterid = "chris";
win.posttime = DateTime.Now;
wem.addWin(win);
IEnumerable<Win> w = wem.getVenueWins(win.venue,win.windate);
return PartialView("_wingrid",w);
}

当 Controller 返回局部 View _wingrid 时,它会将其作为新页面返回,我正在寻找的行为就像是 wingrid div 内的更新面板。

如有任何帮助,我们将不胜感激。

最佳答案

由于 AJAX 表单中的 UpdateTargetId = "wingrid" 选项,您似乎已经在这样做了。只需确保从模型状态中清除在 POST Controller 操作中修改的值。否则 HTML 助手仍然可以使用旧值:

[HttpPost]
public ActionResult Index(Win win)
{
ModelState.Remove("dealerId");
win.dealerId = "1234567890";
ModelState.Remove("posterid");
win.posterid = "chris";
ModelState.Remove("posttime");
win.posttime = DateTime.Now;
wem.addWin(win);
IEnumerable<Win> w = wem.getVenueWins(win.venue,win.windate);
return PartialView("_wingrid",w);
}

另外,如果您想让 Ajax.* 助手正常工作,请不要忘记在您的页面中包含 jquery.unobtrusive-ajax.js 脚本:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

关于ajax - mvc 部分 View ajax 更新将部分 View 作为页面返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com