上有與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