【发布时间】:2013-05-06 03:49:20
【问题描述】:
得到一个模型,其属性具有数据注释验证器属性。一个典型的例子是:
[RegularExpression("^[a-z]{5,}$", ErrorMessage="required field, must have correct format")]
public string SomeProperty {get;set; }
我需要使这些验证器有条件:如果模型中的特定属性具有特定值,则应禁用大多数验证器。 - 在服务器端和客户端。 ( (我使用的是标准 Ms Ajax 客户端验证)
没有使数据注释验证器有条件的默认方法,因此我四处寻找一些实现新型数据注释验证器的库。 查看了 Foolproof.codeplex.com 和 RequiredIf 验证属性。 但是我发现我要么无法正确实现它们,要么它们的实现过于简单(foolProof 只能让您检查单个条件)
对我来说最好的解决方案是,如果我可以为验证器提供 2 个参数:一个条件表达式和一个验证器。可能看起来像这样:
[RequiredIf("OtherProperty == true", RegularExpression=@"^[a-z]{5,}$", ErrorMessage="required field, must have correct format")]
public string SomeProperty {get;set; }
您还有其他推荐的库,或者我可以尝试的其他类型的解决方案吗?
【问题讨论】:
标签: asp.net validation