使用JQuery.Ajax进行MVC验证

时间:2011-04-25 15:42:16

标签: asp.net-mvc jquery-ui jquery asp.net-mvc-2-validation

我正在尝试验证JQuery模型对话框中的表单,该对话框动态加载从jquery ajax调用生成的视图

页面上已经有一个表单,而且这个表单是在另一个表单下创建的,所有内容似乎都是orking但我不确定是否可以在第二个表单上使用常规的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为新生成的

暂停验证信息

2 个答案:

答案 0 :(得分:1)

创建表单后使用此选项:

$.validator.unobtrusive.parse($('form'));

答案 1 :(得分:0)

我刚才反对这一点,发现我只需将验证错误提供给JSON结果并使用Ajax表单的完整方法处理它们。

我找不到我链接的文章,但确实找到了这个;

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