2013-07-31 7 views
1

오류 추가를 위해 사용자 정의 유효성 검사기에서 ModelState에 액세스하려면 어떻게해야합니까?Custom Validator에서 ModelState에 액세스

class CustomValidator : ValidationAttribute 
{ 

    public override bool IsValid(object value) 
    { 
     //access modelstate 
    } 
} 

답변

3

물론 bool IsValid 메서드는 false를 반환 할 때 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); 
    } 


}