我有一个使用AJAX表单的应用程序。当该表单发布和验证失败时,我返回表单所在的部分视图。我希望显示验证摘要,但它不会。我确认模型无效(它返回返回PartialView(" EditorTemplates / PanesViewModel",模型)行),但是当返回部分视图时,不会显示验证摘要。我错过了什么吗?
我有以下代码:
索引视图
using (Ajax.BeginForm("MyAction", "MyController", null, new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "content",
LoadingElementId = "loading"
}))
{
@Html.ValidationSummary()
<div id="content">
@Html.EditorFor(m => m.Panes, "EditorTemplates/PanesViewModel")
</div>
}
PanesViewModel
<fieldset>
<div id="wrapper">
<table>
@Html.EditorFor(m => m.List, "EditorTemplates/ListViewModel")
</table>
</div>
<button type="submit">Submit</button>
</fieldset>
ListViewModel
@Html.EditorFor(m => m.Items, "EditorTemplates/ItemViewModel")
ItemViewModel
<tr>
<td>@Html.EditorFor(m => m.FieldName)</td>
</tr>
myController的
[HttpPost]
public ActionResult MyAction(PanesViewModel model)
{
if (ModelState.IsValid)
{
// Do stuff
return PartialView("EditorTemplates/PanesViewModel");
}
// Should retain model state and display Validation Summary.
return PartialView("EditorTemplates/PanesViewModel", model);
}
答案 0 :(得分:0)
我仍然有点不清楚为什么确切地解决了这个问题,但确实如此:
我将整个AJAX表单放在Partial View中,然后在Index视图中使用@ Html.Partial调用Partial View,并在我的控制器操作中返回PartialView(“_ Partial”)。我猜测AJAX表单需要在重新加载的“东西”里面(局部视图),而不是在里面的内部的的AJA表格中刷新的AJA表格本身单独