MVC4 C#空白視圖阿賈克斯.BeginForm返回IE9
我使用Ajax.BeginForm在我的應用程序,它是偉大的工作。當我創建並測試ChkNum視圖時,它工作得很好。突然它停止了工作,我找不出原因。它仍然適用於其他視圖,但在ChkNum視圖中,當帖子操作中的ModelState.IsValid測試失敗並返回視圖時,返回的頁面爲空(我得到頁眉和頁腳,但不是主體)。正確的腳本將與站點一起加載並在所有其他視圖中工作。
ChkNum查看:
@model ModelVM
@{ ViewBag.Title = "Title"; }
<script type="text/javascript">
var onSuccess = function (result) {
if (result.url) {
window.location.href = result.url;
}
}
</script>
<div id="CkNmFrm">
@Html.ValidationSummary(true) <h2>Page Title</h2>
<span class="h5-sty">Field1: @Model.Field1 Field2: @Model.Field2</span><br />
@using (Ajax.BeginForm("ChkNum", new AjaxOptions() {OnSuccess = "onSuccess", UpdateTargetId = "CkNmFrm", HttpMethod = "Post"}))
{
@Html.AntiForgeryToken()
<br />
<span class="h4-sty">Field3: </span>
<span class="ebwid">@Html.EditorFor(m => m.Field3) </span>
@Html.ValidationMessageFor(m => m.Field3)<br /><br />
<span><input type="submit" value="Submit" /></span>
<br /><br />
}
</div>
ChkNum操作:
public ActionResult ChkNum(int id)
{
// code to build vM
return View(vM);
}
[HttpPost, ValidateAntiForgeryToken]
public ActionResult ChkNum(ModelVM vM)
{
if (ModelState.IsValid)
{
//code
}
ModelState.AddModelError(string.Empty, "Fix Error");
return PartialView("ChkNum", vM);
}
我已經在代碼幾次比起來,工作措施和意見,並不能發現什麼不妥。我在返回的PartialView中放置了一個斷點,並正確地通過了CkNmFrm。
我不能想到我在應用程序中更改了可能會導致此問題的其他任何內容。
在我的智慧結束這一個。任何幫助不勝感激。
UPDATE: 我使用的是IE 9 我只是嘗試在Chrome和問題走了。所以現在的問題是,爲什麼除了ChkNum之外,它在幾個視圖中都有效,這個問題對於IE來說是特別的?
您正在返回從您的ActionResult返回PartialView(「ChkNum」,vM);但是您是否有名稱爲ChkNum的部分視圖?我問過這個問題是因爲你沒有提到任何帶有這個名字的局部視圖。我可以看到ChkNum作爲視圖,但不是作爲部分視圖 – 2013-02-13 04:54:22
不知道你在做什麼。 ChkNum是我作爲PartialView加載的視圖。同樣,這個確切的代碼在多個視圖中工作,只在這個特殊視圖中失敗,並且只在IE中失敗。 – Joe 2013-02-13 06:48:08