我正在尝试使用MVC Foolproof验证框架(http://foolproof.codeplex.com/),但我遇到了ModelAwareValidationAttribute类的问题。
当我添加自定义验证属性时,它适用于服务器端模型验证,但不适用于客户端。
如果我使用框架提供的内置属性之一,客户端不显眼的验证工作,所以我知道(或者至少我认为我知道)我已经加载了正确的javascript库。
有没有人使用此框架创建自定义验证属性,它是否适用于客户端不显眼的验证?如果是这样,你做了什么让它发挥作用?
我正在使用Asp.Net MVC 3,以防万一。
答案 0 :(得分:3)
基于http://foolproof.codeplex.com/SourceControl/latest#Foolproof/Client Scripts/mvcfoolproof.unobtrusive.js,您可以将自定义客户端验证规则添加为服务器端兄弟。
我在项目中所做的是扩展该文件的万无一失的基础。
示例代码:
(function () {
jQuery.validator.addMethod("foo", function (value, element, params) {
//validation code...
});
// code based on link
var setValidationValues = function (options, ruleName, value) {
options.rules[ruleName] = value;
if (options.message) {
options.messages[ruleName] = options.message;
}
};
var $Unob = $.validator.unobtrusive;
$Unob.adapters.add("foo", ["dependentproperty", "dependentvalue", ...(add more parameters if you want)], function (options) {
var value = {
dependentproperty: options.params.dependentproperty,
dependentvalue: options.params.dependentvalue,
};
setValidationValues(options, "foo", value);
});
})();
我希望能帮到你!