3

我正在尝试使用 MVC Foolproof Validation 框架(http://foolproof.codeplex.com/),但我在使用 ModelAwareValidationAttribute 类时遇到了问题。

当我添加自定义验证属性时,它适用于服务器端模型验证,但不适用于客户端。

如果我使用框架提供的内置属性之一,客户端不显眼的验证工作,所以我知道(或者至少我认为我知道)我加载了正确的 javascript 库。

有没有人使用这个框架创建了一个自定义验证属性,它是否适用于客户端不显眼的验证?如果是这样,你做了什么让它发挥作用?

我正在使用 Asp.Net MVC 3,以防万一。

4

1 回答 1

4

基于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);
});
})();

希望对你有帮助!

于 2014-02-16T16:41:32.540 回答