Пользовательский атрибут проверки с проблемой нескольких экземпляров

#c# #asp.net-mvc-2 #attributes #data-annotations #fluentvalidation

#c# #asp.net-mvc-2 #атрибуты #данные-аннотации #плавная проверка

Вопрос:

Я использую систему пространств имен.ComponentModel.Примечания к данным в C # 4 для реализации моего собственного атрибута проверки, и это выглядит следующим образом

 [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)?

Ответ №1:

Ответ №2:

Если вы хотите реализовать AllowMultiple= true в своем собственном атрибуте, то сначала переопределите TypeID, а затем для решения проблемы jQuery посмотрите статью о code project здесь

Ответ №3:

Взгляните на FluentValidation. Это позволяет вам отделить вашу проверку от проверяемых классов, чтобы вы могли вызвать свою логику проверки в любое время, на сервере или клиенте.

Это позволяет добавлять в класс любое количество правил любой сложности, не загромождая его атрибутами.