MVC4 C#Ajax .BeginForm возвращает пустой взгляд в IE9
Я использую Ajax.BeginForm в течение моего приложения, и это работает прекрасно. Когда я создал и протестировал представление ChkNum, он работал отлично. Внезапно он прекратил работать, и я не могу понять, почему. Он по-прежнему работает в других представлениях, но в представлении ChkNum возвращенная страница пуста (я получаю верхний и нижний колонтитулы, но не тело), когда тест ModelState.IsValid в результате действия post не работает, и представление возвращается. Собственные сценарии загружаются с сайта и работают во всех других представлениях.
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?
Вы возвращаете 'return PartialView (« ChkNum », vM);' из вашего ActionResult, но у вас есть частичный вид с именем ChkNum ?. Я спросил об этом, потому что вы не упомянули о частичном представлении с этим именем. Я мог видеть ChkNum как представление, но не как parital view –
Не уверен, что вы получаете. ChkNum - это представление, которое я загружаю как PartialView. Опять же, этот точный код работает в нескольких представлениях и только терпит неудачу в этом конкретном представлении и только в IE. – Joe