ASP.NET MVC 2以Ajax形式的客户端验证功能

时间:2010-03-21 11:32:56

标签: asp.net asp.net-mvc asp.net-mvc-2

我的问题如下:

我正在使用MVC 2.0框架的客户端验证功能。

当我以简单的形式使用验证时,一切都很好。

但是当我使用Ajax表单并更新ajax表单的字段时,客户端验证不起作用。

我想,我必须在ajax调用后刷新验证,但我不知道应该怎么做。

任何人都可以帮助我?

2 个答案:

答案 0 :(得分:0)

这是因为window.mvcClientValidationMetadata填充了与jquery验证或mvc客户端验证函数不同的“范围”。我用jquery验证解决了这个问题,在ajax.begin表单之前添加了以下行。像这样:

<div id="result"></div>

<% Html.EnableClientValidation(); %>

<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result" }))

// here goes the form
<input type="submit" value="Create" />
<% } %>

this is the required code that needs to be added:


<script type="text/javascript">


function RefreshClientValidationMetadata() {
    var allFormOptions = window.mvcClientValidationMetadata;
    if (allFormOptions) {
        while (allFormOptions.length > 0) {
            var thisFormOptions = allFormOptions.pop();
            __MVC_EnableClientValidation(thisFormOptions);
        }
    }
}

RefreshClientValidationMetadata();

</script>

当然,可以在任何地方添加RefreshClientValidationMetadata()函数。

希望这有帮助!

答案 1 :(得分:0)

试试这个:

$(document).ajaxComplete(function () {
   $.validator.unobtrusive.parse(document);             
});