关于Ajax.BeginForm的问题有太多的主题。没有使用返回部分视图正确更新目标元素:
mvc4 ajax更新同一页面
ASP.NET MVC 4-Ajax.NET和html5
MVC 4(razor)-控制器返回部分视图,但整个页面正在更新
MVC 4 Ajax没有更新页面中的PartialView
但是,所有这些问题都可以通过手动写出jQueryAjax或包含缺少的javascript文件来解决
@使用(Ajax.BeginForm(“明信片详细信息”,新的AjaxOptions())
{
InsertionMode=InsertionMode.Replace,
UpdateTargetId=“详细信息”
}))
{
<;div id=“明信片搜索结果”>;
@{Html.RenderAction(“明信片搜索结果”,模型);}
<;/div>;
}
<;div id=“详细信息”>;
</部门>;
相关控制器代码:
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
公共操作结果明信片搜索结果(明信片搜索筛选器筛选器)
{
明信片搜索结果模型=新明信片搜索结果(过滤器);
返回PartialView(“搜索结果”,模型);
}
在我的布局中,我引用了这些jQuery文件。此外,我还验证了页面是否输出了正确的路径,以及是否找到了正确的文件。我尝试过将不显眼的ajax.min.js和验证.min.js的顺序切换为无效
<;script type=“text/javascript”src=”https://stackoverflow.com/questions/15095870/@Url.Content(“~/Scripts/globalize.js”)”></脚本>;
<;script type=“text/javascript”src=”https://stackoverflow.com/questions/15095870/@Url.Content(“~/Scripts/jquery-1.9.1.js”)”></脚本>;
<;script type=“text/javascript”src=”https://stackoverflow.com/questions/15095870/@Url.Content(“~/Scripts/jquery-ui-1.10.0.custom.min.js”)”></脚本>;
<;script type=“text/javascript”src=”https://stackoverflow.com/questions/15095870/@Url.Content(“~/Scripts/jquery.unobtrusive ajax.min.js”)”></脚本>;
<;script type=“text/javascript”src=”https://stackoverflow.com/questions/15095870/@Url.Content(“~/Scripts/jquery.validate.min.js”)”></脚本>;
<;script type=“text/javascript”src=”https://stackoverflow.com/questions/15095870/@Url.Content(“~/Scripts/jquery.validate.unobtrusive.min.js”)”></脚本>;
此外,在我的网站的根web.config和“我的视图”文件夹中的web.config中,我还包括:
<;添加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中的表单元素正在填充所有正确的数据-属性
jquery.unobtrusive-ajax.min和jquery 1.9存在问题,因为jquery 1.9不再支持live()方法。因此,您应该使用jquerymigrate插件,并参考jquerymigratejs