我在C#4中使用tha命名空间System.ComponentModel.DataAnnotations来实现我自己的验证属性,它看起来像这样
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
public sealed class MyCustomValidator : ValidationAttribute {
private String Property1 { get; set; }
private String Property2 { get; set; }
public ValeTaxiSituacaoRequired(String property1, String property2) {
Property1 = property1;
Property2 = property2;
}
public override bool IsValid(object value) {
//validation logic
}
}
我想使用下面的这个属性
[MyCustomValidator("Name", "Job")]
[MyCustomValidator("Name", "Email")]
[MyCustomValidator("Name", "Job")]
public class Employe {
}
问题是只进行了一次验证。如何执行所有验证(使用asp.net mvc 2)?
答案 0 :(得分:15)
答案 1 :(得分:3)
如果你想在你自己的属性上实现AllowMultiple = true,那么首先覆盖TypeID,然后为JQuery的解决方案查看关于代码项目的文章here
答案 2 :(得分:0)
看看FluentValidation。它允许您将验证与要验证的类分开,以便您可以随时在服务器或客户端上调用验证逻辑。
它允许您为类添加任意数量的复杂规则,而不会使用属性将其混乱。