关于SO与Ajax.BeginForm的问题有很多关于SO的问题,这些主题没有正确地使用返回的局部视图更新目标元素: mvc4 ajax更新同一页 ASP.NET MVC 4-Ajax.BeginForm和html5
MVC4(剃刀)-控制器是返回partialview但整个页面正在更新MVC4Ajax不会更新页面内的PartialView 但是,所有这些都可以通过手动写出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>
相关控制器代码:
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)] public ActionResult PostcardSearchResults(PostcardSearchFilter filter) { PostcardSearchResults model = new PostcardSearchResults(filter); return PartialView("_PostcardSearchResults", model); }
在我的布局中,我引用了这些jQuery文件。此外,我已验证该页面正在输出正确的路径,并且可以找到正确的文件。我试着开关的顺序unobtrusive-ajax.min.js和validate.min.js,没有成功。
unobtrusive-ajax.min.js
validate.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和“查看”文件夹中的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错误,并且控制器已正确命中,并返回PartialViewResult。HTML中的Form元素正在填充所有正确的data-属性。
data-
没有与jquery.unobtrusive-ajax.min和JQuery 1.9因为jQuery1.9不支持直播()方法的任何一个问题,更。因此,您应该使用JQuery迁移插件,并引用JQuery迁移js。