Пользовательский атрибут проверки с проблемой нескольких экземпляров - PullRequest
5 голосов
/ 29 июля 2010

Я использую пространство имен System.ComponentModel.DataAnnotations в 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)?

Ответы [ 3 ]

15 голосов
/ 25 ноября 2010
3 голосов
/ 02 августа 2011

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

0 голосов
/ 29 июля 2010

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

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

...