2010-12-20 5 views
0

서버 측에서 유효성 검사 오류와 워닝을 모두 반환하고 실버 라이트로 표시해야하는 비즈니스 사례가 있습니다. Silverlight가 System.ComponentModel.DataAnnotations.ValidationResult를 사용하여 오류를 처리하는 것을 봅니다. 그것은 "경고"를 포함하고 있지 않습니다.서버 측에서 경고음을 실버 라이트로 반환하는 방법

누구든지이 문제를 해결할 좋은 아이디어가 있는지 궁금합니다. 감사.

답변

0

ValidationResult는 ValidationAttribute의 서브 클래스에 의해 Throw되는 ValidationException에 의해 사용된다고 생각합니다. 일반적으로이 메카니즘은 throwing to exception이 코드의 실행을 중단하기 때문에 유효성 검사 오류를 차단하는 데 사용됩니다. 귀하의 서비스에서 예외가 발생하면 고객에게 예외를 보내고 처리 할 수 ​​있지만 항상 원하는 시나리오는 아닙니다.

경고 플래그를 추가하기 위해이 모델 (ValidationAttribute 클래스, 그 서브 클래스, ValidationException은 봉인되지 않음)을 확장 할 수 있지만 경고가 발생할 경우 처리를 계속하고 예외를 다시 잡으려면 예외를 트랩해야합니다.

또 다른 대안은 클라이언트에 대한 응답에 비즈니스 논리 유효성 검사 오류 및 경고를 추가하는 것입니다. 원하는 방식으로 원하는 정보를 원하는 방식으로 포함 할 수 있기 때문에이 방법이 마음에 듭니다.

+0

감사합니다. 현재 내 솔루션은 서버에서 오류를 가져 와서 context.ValidationResults에 추가하여 ValidationSumarry가 해당 오류를 찾아서 표시 할 수 있도록하는 것입니다. 그러나 ValidationResults는 오류만을위한 것이며 경고를위한 공간이 없습니다 ... MS 클래스를 상속하고 필드를 추가해야한다고 생각합니까? 좋은 해결책입니까? 아니면 더 나은 것이 있습니다. 일부 기술적 이유로 유효성 검사 오류를 반환 할 수 없습니다 ... – Frank

+0

ValidationResult는 불행히도 봉인되었습니다. 오류와 경고를 동시에 표시하지 않으면 ViewModel에 플래그를 설정하여 오류 또는 경고가 있는지 여부를 표시하고 이에 따라 ValidationSummary 스타일을 지정할 수 있습니다. 더 나은 해결책을 찾아보고 뭔가를 찾으면 다시 게시 할 것입니다. – sowee15

+0

INotifyDataErrorInfo (http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo(v=vs.95).aspx)에 대한 설명서의 발언을 확인하십시오. 이것이 좋은 출발점이라고 생각합니다. ViewModel의 오류 사용자 정의. 그러나이 경우에는 ViewModel에 인터페이스를 구현하여 ValidationContext에 오류를 추가하는 대신 새 오류를 사용할 수 있음을 UI에 알립니다. – sowee15

관련 문제