2013-01-06 1 views
2

Silverlight RIA 응용 프로그램에서 10 진수 속성의 유효성을 검사해야합니다. 나는 다음과 같이 메타 데이터 속성을 주석으로 RegularExpression 및 범위를 사용하는 것을 시도했다 : 새 개체를 추가 할 때RIA 서비스 유효성 검사, 유효하지 않은 경우 값을 업데이트하지 않음

//[RegularExpression(@"^[1-9]\d*(\.\d+)?$", ErrorMessage = "Quantity has to be a positive numeric value")]  
[Range(typeof(decimal), "1", "1000", ErrorMessage = "Quantity must be between {1} and {2}")] 

는, 모두가 numberic 값을 확인할 수 있지만 키는 편지에서, 모두가 오류를 플래그하지 않으면, 속성을 업데이트하지 않습니다. 예를 들어, 먼저 2를 입력하고 "test"로 변경하면 텍스트 상자에 오류 메시지가 표시되지 않습니다. 엔티티를 저장할 때 속성 값에는 여전히 2가 있습니다.

이 예상되는 동작입니까? 그렇다면 아무런 숫자가없는 항목을 오류로 표시하도록하려면 어떻게해야합니까?

감사합니다.

답변

0

원인을 찾았습니다. 속성 유형은 십진수이므로 입력 텍스트 일 ​​때 예외가 발생하고 "설정"에 도달하지 않으므로 유효성 검사가 실행되지 않습니다. 컨트롤에서 "ValidatesOnExceptions = True"를 설정하면 기본 오류 메시지 "잘못된 형식"이 표시됩니다.

+1

하지만 여전히 문제가 있습니다. 입력 상자에 문자를 넣으면 예외가 발생해도 오류 메시지가 표시됩니다.이 시점에서 유효성 검사 오류가 없으므로 "저장"단추가 여전히 활성화됩니다. 이 예외를 catch하고 유효성 검사 오류를 추가하여 저장 버튼을 비활성화 할 수 있습니까? – julie6

관련 문제