gpt4 book ai didi

c# - MVC4 Ajax.BeginForm 不替换 UpdateTargetId

转载 作者:可可西里 更新时间:2023-11-01 07:53:28 25 4
gpt4 key购买 nike

SO 上有很多关于 Ajax.BeginForm 未使用返回部分 View 正确更新目标元素的问题的主题:
mvc4 ajax updating same page
ASP.NET MVC 4 - Ajax.BeginForm and html5
MVC 4 (razor) - Controller is returning a partialview but entire page is being updated
MVC 4 Ajax is not updating the PartialView within the page
但是,所有这些问题都可以通过手动编写 jQuery ajax 或包含缺少的 javascript 文件来解决。

  @using (Ajax.BeginForm("PostcardDetails", new AjaxOptions()
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "details"
}))
{
<div id="PostcardSearchResults">
@{Html.RenderAction("PostcardSearchResults", Model);}
</div>
}
<div id="details">
</div>

相关 Controller 代码:

[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public ActionResult PostcardSearchResults(PostcardSearchFilter filter)
{
PostcardSearchResults model = new PostcardSearchResults(filter);
return PartialView("_PostcardSearchResults", model);
}

在我的布局中,我引用了这些 jQuery 文件。此外,我已经验证该页面正在输出正确的路径,并且它找到了正确的文件。我试过切换 unobtrusive-ajax.min.jsvalidate.min.js 的顺序,但没有成功。

<script type="text/javascript" src="@Url.Content("~/Scripts/globalize.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.9.1.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.10.0.custom.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>

此外,在我网站的根 web.config 和我的 View 文件夹中的 web.config 中,我包括:

<add key="webpages:Version" value="2.0.0.0"/>
<add key="PreserveLoginUrl" value="true"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

我不知道该去哪里找。没有抛出 javascript 错误, Controller 被正确命中,返回 PartialViewResult。 HTML 中的 Form 元素填充了所有正确的 data- 属性。

最佳答案

jquery.unobtrusive-ajax.min 和 JQuery 1.9 存在问题,因为 JQuery 1.9 不支持 live() 方法 more .所以应该使用JQuery migrate插件,引用JQuery migrate js。

关于c# - MVC4 Ajax.BeginForm 不替换 UpdateTargetId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095870/

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