我可以在 ajax 调用返回的 PartialView 上使用 ValidationSummary 吗?

Can I use ValidationSummary on a PartialView returned by ajax call?

我有一个 asp.net MVC 应用程序,它使用 jquery 非侵入式验证。我想在如下所述生成的表单上使用 Html.ValidationSummary。

是否有任何 hack 或变通方法可以让 Html.ValidationSummary 处理通过获取和显示局部视图的 ajax 调用生成的表单?

我使用 ajax 调用控制器操作,其中 returns 是部分视图。然后我将 div 的 html 设置为 ajax 调用结果。 ajax 调用如下所示:

$.ajax({
            type: "GET",
            url: '/MyDomain/GetPartialView?myId=' + myId,
            cache: false,
            dataType: "html",
            success: function (responseText) {
                $tab.html(responseText);
                $tab.find('form').validate();
            }
   });

控制器动作如下所示:

public ActionResult GetPartialView(long myId)
{
    model = GetModel(myId);
    return PartialView("_MyPartialView", model);
}

PartialView 是一个普通的旧 *.cshtml 页面,它生成一个表单,如下所示,在该表单上我有一个(非功能性的)ValidationSummary 以及一堆输入。有什么办法可以让它发挥作用吗?现在 jquery 不显眼的验证有效,但它会在每个无效输入旁边显示错误消息。我想让页面在 ValidationSummary 中显示错误消息。

@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post,     new { enctype = "multipart/form-data" }))
{
    <span id="validation-errors" class="validation-summary-errors">@Html.ValidationSummary(false, "Submit was unsuccessful. Please correct the errors and try again.")</span>

    <div>@Html.EditorFor(m => m.MyField)</div>
}

@StephenMuecke,如果你想 post 你的评论作为答案,我会使用它并删除这个。 @StephenMuecke 所述的答案是重新解析验证器。我的 ajax 调用现在看起来像这样,添加的 2 行代码解决了这个问题:

$.ajax({
        type: "GET",
        url: '/MyDomain/GetPartialView?myId=' + myId,
        cache: false,
        dataType: "html",
        success: function (responseText) {
            $tab.html(responseText);
            var $form = $tab.find('form');
            $form.data('validator', null);
            $.validator.unobtrusive.parse($form);
        }
   });