2013-07-31 1 views

ответ

3

Ну метод bool IsValid просто добавить ошибку в ModelState при возврате ложной. Вам не нужно напрямую управлять ModelState.

Если вы хотите получить специальное сообщение, вы можете сделать это на ctor.

Если вы хотите больше контроля, вы можете переопределить ValidationResult IsValid( Object value, ValidationContext validationContext )

class CustomValidator : ValidationAttribute 
{ 
    //custom message in ctor 
    public CustomValidator() : base("My custom message") {} 
    public override bool IsValid(object value) 
    { 
     return true; 
    } 
    //return a overriden ValidationResult 
    protected override ValidationResult IsValid(
    Object value, 
    ValidationContext validationContext) { 

     var message = "ohoh"; 
     return new ValidationResult(message); 
    } 


}