[英]Validation summary with AJAX form in partial view
我有一个使用AJAX表单的应用程序。 当该表单发布且验证失败时,我返回该表单所在的部分视图。我希望显示“验证摘要”,但不会显示。 我确认该模型无效(点击返回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>
ListViewModel
@Html.EditorFor(m => m.Items, "EditorTemplates/ItemViewModel")
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);
}
我仍然不清楚为什么这可以解决问题,但是确实做到了:
我将整个AJAX表单放在Partial View中,然后在Index视图中使用@ Html.Partial调用该Partial View,并在控制器操作中返回PartialView(“ _ Partial”)。 我猜想AJAX表单需要放在要重新加载的“事物”内部(局部视图),而不是刷新AJAX表单内部的EditorFor代码以及将AJAX表单本身保留下来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.