我正在尝试验证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为新生成的
暂停验证信息答案 0 :(得分:1)
创建表单后使用此选项:
$.validator.unobtrusive.parse($('form'));
答案 1 :(得分:0)
我刚才反对这一点,发现我只需将验证错误提供给JSON结果并使用Ajax表单的完整方法处理它们。
我找不到我链接的文章,但确实找到了这个;
http://www.hightech.ir/SeeSharp/aspnet-validation-with-ajax-and-json