0

ValidationAttributes 자원 발생기 내장 VS2010으로 생성 된 .resx 리소스 파일에 저장 내 ErrorMessages 값 쌍에 액세스하지 않습니다. (새 항목 추가 - 자료 파일)먹이 DataAnnotations.ValidationAttribute 오류 메시지

단순히 자원 편집기에서, 다음, Resources라는 이름의 폴더를 추가 한 새로운 Resources File을 추가하고 ErrorResources라고 나는 값 쌍 StringLengthError 추가 - 너무 긴 **.

그런 다음 내 DataAnnotation.ValidationAttribute에 내가 쓴 :
[StringLength(5, MinimumLength = 3, 
        ErrorMessageResourceType = typeof(ErrorResources), 
        ErrorMessageResourceName = "StringLengthError")] 
    public string Details { get; set; } 

내가 ErrorResources을 포함하도록 using 문을 추가했다.

하지만 실행하면 ValidationAttribute StringLength는 완전히 무효화됩니다. 에서와 같이

나는 ErrorResources없이 사용하는 경우

:

[StringLength(5, MinimumLength = 3)] 
    public string Details { get; set; } 

검증 속성은 다시 살아 온다.

코드의 다른 부분에서 ErrorResources 값 쌍을 액세스하려고 시도했지만 작동합니다. ErrorResources 리소스를 사용하기 위해 ValidationAttributes를 가져올 수 없습니다.

답변

0

액세스 수정은 Public해야하지만 충분하지 않습니다. 당신은 다음과 같이 당신의 RESX 파일의 속성을 변경해야합니다 :

데이터 주석에 의해 사용 또한 Resx에서

Properties

에주의 Build Action에와 Custom Tool

App_GlobalResources보다는 Resources을에 앉아야 너 언급 했어. 이것들을 시험해보고, 그것이 효과가 있는지보십시오.

희망이 도움이 될 것입니다.

+0

예, 대답은 사용자 정의 도구도 중요합니다. – Rafael

+0

@ user1353914 그 대답이 가장 유용하고 도움이 되었다면 받아 들였습니다. 당신 덕분에. –

+0

답변을 수락 된 것으로 표시하려면 어떻게해야하나요? "이 게시물이 유용 했습니까?" – Rafael

0

리소스 파일의 Access Modifier 설정을 public으로 변경해보십시오!

enter image description here

+0

나는 이미 그렇게했습니다! – Rafael

+0

안녕하세요 : 나는 이미 그 일을했다고 깜빡하고 아무 일도 없었습니다! 또한, 내가 다운로드 한 프로젝트 (ValidationAttributes를 설명하는 일부 문서)에서 이러한 종류의 오류 메시지를 리소스에 사용하면이 사람이 정의한 리소스가 작동하지만이 프로젝트에서 리소스 파일을 만들고 리소스 그 프로젝트에서 작동하지 않았다. 나는 왜 문화와 관련된 것이 될 수 있을지 모르지만 그럴 경우 왜 그 프로젝트에서 작동하지 않습니까? 나는 생각할 것을 몰라요. 프로젝트입니다 : https://github.com/jeffhandley/RIAServicesValidation – Rafael

+0

해당 프로젝트에 이미있는 자원 파일을 사용하는 경우 작동하지만 새로운 리소스 파일을 정의하는 경우에도 동일한 directoy 에서조차 don – Rafael