iur*_*ona 4 validation asp.net-mvc config
我想使用来自可配置源的asp.net mvc客户端/服务器验证.
有些像.config文件,我可以放置信息:Type,Member,ValidationType
<validations>
<add type="Customer" member="Name" validator="Required" />
<add type="Customer" member="Age" validator="Range" mimimum="18" maximum="100" />
</validations>
Run Code Online (Sandbox Code Playgroud)
通过此计划,可以启用/禁用验证.
任何的想法?
如果需要,请考虑一些更高级的验证框架,例如Enterprise Library Validation Block.
如果你想自己做,我建议像这样从ValidationAttribute创建自定义属性(部分伪代码,我相信你明白了)
public class ConfigurableValidationAttribute: ValidationAttribute
{
public override bool IsValid(object value)
{
string objectType = value.GetType().FullName;
string objectName = GetMyObjectName(value); // interface? reflection?
var validationRules = GetValidationRulesFor(objectType, name); // from your configuration
foreach (var rule in validationRules)
{
ValidationAttribute attr = null;
switch (rule.ValidatorName)
{
case "Required": attr = new RequiredAttribute();
case "StringLength": attr = // you get the idea
}
if (!attr.IsValid(value)) return false;
}
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |