2012-02-16 2 views
1
public class Test 
{ 
    [RelativeDateTimeValidator(-10, DateTimeUnit.Year, 10, DateTimeUnit.Year, ErrorMessage = "Error")] 
    public DateTime ADate { get; set; } 

    public void ValidateMyProperty() 
    { 
     ADate = new DateTime(1900, 01, 01); 

     ValidationResults vrs = Validation.Validate<Test>(this); 
     foreach (var vr in vrs) 
     { 
      Print(vr.Message); 
     } 
    } 
} 

이, 어떻게 (ErrorMessage가 = "오류")/내가 지정한 오류 메시지에 액세스으로 모니터 할 그러나 액세스 검사기 블록 ErrorMessage가

The value must fall within the range "-10"(Year) - "10(Year) relative to now 

을 표시?

미리 감사드립니다.

답변

1

유효성 검사가 실패 할 때받은 메시지를 지정하려면 MessageTemplate 특성을 찾고 있다고 생각합니다. 교체 가능한 토큰도 허용됩니다.

문서에서

다음에 ValidationResult 인 경우

public class Person 
{ 
    [RelativeDateTimeValidator(-120, DateTimeUnit.Year, -18, DateTimeUnit.Year, 
      Ruleset="RuleSetA", MessageTemplate="Must be 18 years or older.")] 
    public DateTime DateOfBirth 
    { 
    get 
    { 
     return dateOfBirth; 
    } 
    } 
} 

메시지 템플릿 토큰

메시지 템플릿 토큰이 포함되어있는 경우 (예를 들어, "{0}"), 발리는 값이 토큰을 대체합니다 만들어진. 상대 날짜 시간 유효성 검사기가 지원하는 토큰은 다음 표에 나열되어 있습니다.

{0}

토큰이 검증되는 객체의 값을 나타내는 의미

토큰

. 유효성 검사 메시지의 일부로 원래 값을 표시하는 것이 유용 할 수 있지만 사용자에게 메시지를 전달하는 시스템을 공격하는 데 사용할 수있는 문자를 이스케이프 처리하여 주입 공격을 피하는 데주의해야합니다.

{1}

토큰이 검증되는 개체의 키를 나타낸다. 발리 데이터가 속성이나 필드와 같은 유형의 멤버에 연결되면 키는 멤버 이름으로 설정됩니다. 발리 데이터가 객체에 연결되면 키는 null이고 토큰은 빈 문자열로 바뀝니다.

{2}

이 토큰 검증 인스턴스에 지정된 태그를 나타낸다. 태그를 지정하지 않으면 토큰이 빈 문자열로 바뀝니다.

+0

좋은 물건, 고마워. – Craig

관련 문제