得到了一个具有数据注释验证器属性的模型。一个典型的例子是:
[RegularExpression("^[a-z]{5,}$", ErrorMessage="required field, must have correct format")]
public string SomeProperty {get;set; }
我需要使这些验证器有条件:如果模型中的特定属性具有特定值,则应禁用大多数验证器。- 在服务器端和客户端。((我正在使用标准 Ms Ajax 客户端验证)
没有使 Data Annotation Validators 有条件的默认方法,所以我四处寻找一些实现新型 Data annotation 验证器的库。查看了 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; }
您推荐的任何其他库,或我可以尝试的其他类型的解决方案?