【发布时间】:2014-11-29 01:08:24
【问题描述】:
我有一个使用 AJAX 表单的应用程序。当该表单发布并且验证失败时,我返回该表单所在的部分视图。我希望显示验证摘要,但它没有。我确认模型无效(它到达 return PartialView("EditorTemplates/PanesViewModel", model) 行),但是当返回部分视图时,验证摘要不显示。我错过了什么吗?
我有以下代码:
索引视图
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>
列表视图模型
@Html.EditorFor(m => m.Items, "EditorTemplates/ItemViewModel")
项目视图模型
<tr>
<td>@Html.EditorFor(m => m.FieldName)</td>
</tr>
我的控制器
[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);
}
【问题讨论】:
-
未测试,但我怀疑
@Html.ValidationSummary()需要进入PanesViewModel -
我原来有它(我刚刚又试了一次),但它并没有解决问题。
标签: c# jquery ajax asp.net-mvc-4 validation