繁体   English   中英

部分视图中的AJAX表单验证摘要

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM