2017-01-23 5 views
4

데이터 주석을 사용하여 웹 API 2 모델의 유효성을 검사합니다. 기본 속성 기반 유효성 검사 (Required, Range 등)의 경우 사용자 정의 ModelMetadataProvider을 삽입하여 현지화 된 메시지를 제공하는 것이 매우 쉽습니다. 여기 ErrorMessageResourceName를 지정하는 방법이없는 것 같습니다IValidatableObject.Validate()의 현지화

public class ValidationResult 
{ 
    public ValidationResult(string errorMessage); 
    public ValidationResult(string errorMessage, IEnumerable<string> memberNames); 
} 

그러나, 더 복잡한 규칙 나는 ValidationResult의 시퀀스를 반환 IValidatableObject를 구현합니다. 그리고 내 모델을 현지화 공급자에 종속되게하고 싶지 않습니다. 문제를 어떻게 해결할 수 있습니까?

+0

난 문제가 보이지 않습니다 ... 왜 그냥 contructor.In에있는 현실적인 가치를 찾기 위해 현재 ResourceManager를 사용하여 열쇠를 전달하려는 경우 현지화 된 문자열을 전달하지 ... –

답변

1

문화권이 시스템에 제공되기 전에 IValidatableObject.Validate 메서드가 호출되면 이러한 일이 발생할 수 있습니다. 컨트롤러 동작에서 Validate 메서드를 수동으로 호출하면 오류 메시지가 올바르게 지역화됩니다.

문화권을 어디에 설정합니까? 컨트롤러> ExecuteCore에 설정해야합니다. this 게시물을 보거나 This 게시물을 참조하십시오.