如何让不显眼的客户端验证工作,万无一失的ModelAwareValidationAttribute [英] How to make unobtrusive client-side validation work with Foolproof's ModelAwareValidationAttribute
问题描述
我想利用MVC万无一失的验证框架的( HTTP://foolproof.$c $ cplex.com / ),但我有与ModelAwareValidationAttribute类的麻烦。
I'm trying to make use of the MVC Foolproof Validation framework (http://foolproof.codeplex.com/) but I'm having trouble with the ModelAwareValidationAttribute class.
当我添加一个自定义验证属性,它工作正常进行服务器端模型验证,而不是在客户端。
When I add a custom validation attribute, it works fine for server-side model validation, but not on the client-side.
如果我使用了框架提供的内置属性之一,客户端不显眼的审定工作,所以我知道(或至少我想我知道),我已经加载了正确的JavaScript库。
If I use one of the built-in attributes supplied by the framework, client-side unobtrusive validation works, so I know (or at least I think I know) that I have the correct javascript libraries loaded.
有没有人在那里创建使用这个框架在它与客户端不显眼的审定工作自定义验证属性?如果是这样,你做了什么,使其工作?
Has anyone out there created a custom validation attribute using this framework at does it work with client-side unobtrusive validation? If so, what did you do to make it work?
我使用Asp.Net MVC 3,在这种情况下,重要的
I'm using Asp.Net MVC 3, in case that matters.
推荐答案
底座上的<一个href=\"http://foolproof.$c$cplex.com/SourceControl/latest#Foolproof/Client%20Scripts/mvcfoolproof.unobtrusive.js\"相对=nofollow> HTTP://foolproof.$c$cplex.com/SourceControl/latest#Foolproof/Client脚本/ mvcfoolproof.unobtrusive.js 你可以添加自定义客户端验证规则,服务器端的兄弟姐妹
Base on the http://foolproof.codeplex.com/SourceControl/latest#Foolproof/Client Scripts/mvcfoolproof.unobtrusive.js you can add your custom client validation rules as the server side sibling.
我在做的项目是万无一失的基础上,该文件扩展。
What I did in the projects is to extend the foolproof base on that file.
举例code:
(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);
});
})();
我希望帮你!
这篇关于如何让不显眼的客户端验证工作,万无一失的ModelAwareValidationAttribute的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!