DataAnnotationsModelValidatorProvider
(DAMVP
)을 오차 코드 자체 구현으로 대체하여 오차 메시지 방식으로 유효성 검사 메시지를 현지화 할 수 있습니다. 그것이 이루어지는 방식은 예를 들면 다음과 같습니다. [Required]
을 [LocalizedRequired]
으로 변경하고 제어를 DAMVP
으로 전달합니다. DAMVP
은이됩니다.하지만 Orchard가 속성을 "엉망으로 처리 한"후에 만 작동합니다.
DAMVP
은 클라이언트 유효성 검사 특성을 적용하기 위해 Attribute
유형을 사용합니다. 이제 예를 들어 찾을 수 없습니다. 은 LocalizedRequiredAttribute
으로 바뀌 었습니다. 따라서 어떤 클라이언트 유효성 검사 속성에 추가해야하는지는 알 수 없습니다.
그래서 라인을 주석 처리하면 오차드의 현지화를 잃게됩니다. 그들을 버리면 고객 유효성을 잃게됩니다.
힘 작업 (원의 코드를 통해 충분히 보았다, 그리고 순간에 테스트하지 않는 수단을 가지고 있지 않은) 문제를 해결하는 것이
하나는 원의 Localized
속성을 알고 DAMVP
를 만들기 위해 그들과 함께 무엇을해야하는 것입니다.
DAMVP
은 속성에 대한 새로운 클라이언트 규칙을 추가하기 위해 정적 인 RegisterAdapter() 메소드를 가지고 있습니다. 사용할 속성의 유형과 클라이언트 측 어댑터 (클라이언트 속성 추가를 처리하는 클래스)의 유형을 사용합니다. 그래서
, 다음과 같이 작동 될 수 있습니다
을 OrchardStarter.cs에서 :
는
// Leave the LocalizedModelValidatorProvider lines uncommented/intact
// These are the four attributes Orchard replaces. Register the standard
// client adapters for them:
DataAnnotationsModelValidatorProvider.RegisterAdapter(
typeof(LocalizedRegularExpressionAttribute),
typeof(RegularExpressionAttributeAdapter)
);
DataAnnotationsModelValidatorProvider.RegisterAdapter(
typeof(LocalizedRequiredAttribute),
typeof(RequiredAttributeAdapter)
);
DataAnnotationsModelValidatorProvider.RegisterAdapter(
typeof(LocalizedRangeAttribute),
typeof(RangeAttributeAdapter)
);
DataAnnotationsModelValidatorProvider.RegisterAdapter(
typeof(LocalizedStringLengthAttribute),
typeof(StringLengthAttributeAdapter)
);
공식 단어에 관해서는, 지역화 검증이 1.3에 도입 된 이후이 일을하지 않은 것 같다 영향은 낮음으로 간주됩니다. http://orchard.codeplex.com/workitem/18269
따라서 현재 질문 제목에 대한 공식 답변은 "안됩니다"입니다.
감사합니다. 나는 상황에 대해 이미 알고 있거나 추측 한 것을 취하여 내가하지 않은 것과 함께 엮어서 내게 필요한 답을주었습니다. 매우 감사. – Zannjaminderson