簡體   English   中英

我可以在ajax調用返回的PartialView上使用ValidationSummary嗎?

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

我有一個使用jquery非侵入式驗證的asp.net MVC應用程序。 我想在如下所述生成的表單上使用Html.ValidationSummary。

我可以使用任何技巧或解決方法來獲取Html.ValidationSummary來處理通過ajax調用生成的表單,該表單獲取並顯示部分視圖嗎?

我使用ajax調用Controller操作,該操作返回部分視圖。 然后,將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,如果您想發表評論作為答案,我將使用它並將其刪除。 @StephenMuecke指出的答案是重新解析驗證器。 我的ajax調用現在看起來像這樣,添加的兩行代碼解決了該問題:

$.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);
        }
   });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM