上有与Ajax.BeginForm不能正确地与回报局部视图更新目标元素,以便有关问题这么多的主题:
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文件来回答。MVC4 Ajax.BeginForm不更换UpdateTargetId
@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
的顺序,但没有成功。
<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-
属性。
有点困惑,它与OP问题有什么关系?你是说.live是Ajax.Beginform在底层使用的吗? – Shenaniganz 2013-02-26 18:02:07
忘了提,我已经更新了我的'jquery.unobtrusive-ajax.min.js'与建议,由这个帖子:http://stackoverflow.com/a/14512797/28310 如果我没有,我会得到JavaScript错误。我也尝试使用jquery-migrate。 – drovani 2013-02-26 18:20:48
是啊Ajax Beginform在引擎盖下使用 – 2013-02-26 18:24:11