0

jquery ajax 呼び出しから生成されたビューを動的にロードしている JQuery モデル ダイアログでフォームを検証しようとしています。

ページには既に 1 つのフォームがあり、このフォームは別のフォームの下に作成されており、すべてが正常に動作しているように見えますが、動的に作成されているため、この 2 番目のフォームで通常の MVC 検証を使用できるかどうかはわかりません。

ここにメインの HTML ビューがあります

 <% Html.EnableClientValidation(); %>
    <% using (Html.BeginForm("UpdateFund", "AdministerFundFeature", FormMethod.Post, new { enctype = "multipart/form-data" })) { %>

    <fieldset>

       ...
    <input type="submit" value="Submit" />
   </fieldset>
<%} %>

    <div id="GrantRecipDialog" title="Add/Edit Grant Recipiant">
        <div id="GrantRecipContent"></div>
    </div>

ボタンをクリックすると、この関数が起動され、div に新しいフォームが入力されます

var url = "<%: Url.Action( "AddOrUpdateGrantRecip", "AdministerFundFeature") %>" + "?aGrantId=" + aGrantId + "&aFundId=" + aFundId;
            $.ajax({
                url: url, 
                success: function (data) {
                    $('#GrantRecipContent').html(data); /*place the data here, and rerender the section*/
                    $('#GrantRecipDialog').dialog("open");
                },
                error: function () { alert("There was a problem with your request, please resubmit your request."); },//??
                complete: function() {}
            });

         }

これがポップアップでレンダリングされるビューです

<% Html.EnableClientValidation(); %>
<% using (Ajax.BeginForm("updateGrant", "AdministerFundFeature", 
       new AjaxOptions { OnComplete="function(){onGrantRecipUpdate()}", OnFailure="function(){return onGrantFail()}"},
       new { @id = "frmID" }))
   { %>
<fieldset>
   ...

</fieldset>
<%}%>

ポップアップの MVC 検証をフックすることは可能ですか? 最初の形式では問題なく動作しますが、MVC に生成された新しい検証情報を取得するように明示的に指示する方法がわかりません。

4

2 に答える 2

1

フォームを作成した後にこれを使用します。

$.validator.unobtrusive.parse($('form'));
于 2015-03-19T08:27:00.443 に答える
0

少し前にこれに遭遇し、検証エラーを JSON 結果にフィードし、Ajax フォームの完全なメソッドを使用して処理する必要があることに気付きました。

リンク先の記事が見つかりませんでしたが、これは見つかりました。

http://www.hightech.ir/SeeSharp/aspnet-validation-with-ajax-and-json

于 2011-04-26T00:47:37.600 に答える