Пользовательский валидатор DataAnnotations, полученный из RegularExpressionAttribute - PullRequest
5 голосов
/ 22 апреля 2010

Gu предоставляет пример того, как вы можете создать собственный валидатор, который переопределяет RegularExpressionAttribute.

Преимущество этого заключается в том, что вам не нужно создавать собственный Валидатор модели , но я не могу заставить его работать.

С учетом следующего кода:

public class NameAttribute : RegularExpressionAttribute {
    public NameAttribute()
        : base(@"^[\w\s\-\']+$") {
    }
}

Это работает:

[RegularExpression(@"^[\w\s\-\']+$")]

Но это не так:

[Name]

Неужели я неправильно понял аспект примера Скотта или этот пример ошибочен в том, что MVC не поддерживает производные типы из коробки, поэтому на самом деле мне придется создать соответствующий ModelValidator?

Ответы [ 2 ]

11 голосов
/ 22 апреля 2010

Трещины это! Добавьте следующее в Global.asax.cs Application_Start ()

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(NameAttribute), typeof(RegularExpressionAttributeAdapter));
1 голос
/ 22 апреля 2010

Если вы хотите пройти проверку клиента, вам необходимо зарегистрировать серверный адаптер для удаленной проверки.

См. Здесь: http://msdn.microsoft.com/en-us/magazine/ee336030.aspx

и здесь: http://bradwilson.typepad.com/blog/2010/01/remote-validation-with-aspnet-mvc-2.html

...