使用需要ajax post的自定义验证器进行不引人注目的验证



我使用的是带有不显眼验证的ASP.NET MVC。我需要添加一个新的带有客户端验证的自定义验证属性,这很好(我已经定义了一些)。问题是,在客户端验证中,我需要调用ajax来检查输入是否有效。

在MVC中,您可以使用addMethod:添加客户端验证器

jQuery.validator.addMethod("customValidation", function(){...})

但是您定义的函数需要返回一个布尔值,而执行ajax帖子是aysnc,这就打破了这一点。

根据jQuery验证器和使用AJAX的自定义规则,有两个选项——要么在AJAX调用中使用async:false,要么在validate方法中添加remote。但是,async:false是拆包的,我不能使用remote,因为我使用的是不引人注目的验证。

有人能找到更好的解决方案吗?

数据注释包含一个Remote属性,该属性可自动插入jquery远程验证。

https://msdn.microsoft.com/en-us/library/system.web.mvc.remoteattribute(v=vs.98).aspx

最新更新