2010-06-07 4 views
1

[필수 (ErrorMessage가 = "이 필요합니다")]데이터-주석 점점 ErrorMessage가 밖으로 데이터베이스

가 어떻게이 같은 것을 만들 수 있습니다

[ 필수 (ErrorMessage가 = "ERRORXX은")]

그래서 나는이 ERRORXX가 무엇인지 데이터베이스에 조회하고 내 양식에 표시 할 수 있습니다. 이제 내 양식에 ERRORXX가 표시됩니다.

내 문제를 해결하는 방법은 무엇입니까?

Thx!

답변

0

주어진 속성에 대한 속성 선언을 읽거나 사용하고 싶습니다.

그렇다면 고유 한 RequiredAttribute 클래스를 만들거나 원하는대로 새 속성이나 적절한 속성을 추가 할 수 있습니다. 참조 : Attributes Tutorial

+0

requiredAttribute 클래스에서 상속받을 수 있습니까? – Masna

+0

Woops, 나는 당신 질문의 요점을 놓쳤다 고 생각합니다 ... 죄송합니다. 아니요, 관습에 따라 봉인 된 것으로 표시되기 때문에 일반적으로 속성 구현을 확장 할 수 없습니다. – Reddog

+0

속성에 대한 속성은 라이브러리에 컴파일 될 때 고정 상수 여야합니다. @Leniel의 첫 번째 링크는 리소스 파일을 통해 원하는 것을 얻을 수있는 방법을 보여줍니다. – Reddog

3

을 그냥 생각 : 왜 resx file에서 오류 메시지를 당기지? 나는 이것이 이것을하는 일반적인 방법이라고 생각한다. 심지어 오류 메시지를 쉽게 현지화 할 수 있습니다.

리소스 파일 (resx 파일)을 사용하면 나중에 오류 메시지를 변경하는 것이 더 쉽다고 생각합니다. 예를 들어 워드 패드에서 resx 파일을 열고 편집 할 수 있습니다. 당신은

Localizing ASP.NET MVC Validation

Globalizing ASP.NET MVC Client Validation

너무 여기를보세요 등을 조회, 사용자 이름/암호를 사용하여 데이터베이스에 액세스 할 필요가 없습니다 :

Model Validation & Metadata in ASP.NET MVC 2

Customizing ASP.NET MVC 2 - Metadata and Validation

1

기본 경로는 Resources입니다. 그러나 나는 당신의 고통을 이해합니다 :) 내가 이룩한 방법은 조금 특이한 것이지만, 나는 당신에게 빠른 개요를 줄 것입니다. 우리 프로젝트에서 리소스 파일을 사용하는 것은 우리의 목적에 너무 제한적인 옵션이 아닙니다. 그 세부 사항은 지금 당신과 함께 지루하지 않을 것입니다! :) 가장 기본적인 원칙은 유효성 검사 속성의 errorMessage 속성을 일종의 "키"로 설정 한 다음 CMS 데이터베이스에서 올바른 (험난한) 응답을 조회하는 방법으로이를 사용하는 것입니다. 유효성 검사가 실패합니다 (우리의 경우 MVC를 사용하여 모델을 업데이트하고 상태를 확인 - 모든 컨트롤러 수준에서).

이것은 "ErrorMessageResourceName"및 "ErrorMessageResourceType"을 지정하여 자원을 사용하는 것과 동일한 원칙이지만 원하는대로 할 수 있습니다.

이 명확하게하기 위해, 우리는 원래 우리가 나중에 데이터베이스에서 합리적인 CMS 값을 검색 할 수 있도록 적절하게 명명 된 인수를 퍼팅을 포함하여, 우리 자신의 물건으로 RequiredAttribute를 (한 예로) 확장. 분명히하기 위해 MVC와 사용자 정의 HtmlHelpers를 사용하여 우리 자신의 ValidationControl을 렌더링합니다. 사용자 정의 주석 등의 사용자 정의 값을 궁극적으로 사용합니다. "errorMessage"또는 그와 비슷한 것을 사용하여 원하는 위치에서 실제 메시지를 조회 할 수 있습니다.