2012-02-15 3 views
0

CachedDataAnnotationsModelMetadataProvider를 기반으로 수정 된 MetadataProvider를 사용하려고합니다. 내 맞춤 메타 데이터 내에서 추가 값 사전에 데이터를 제공합니다. 공급자 내에서 캐시를 보면 ModelMetadata 개체가 올바르게 채워지고 해당 개체에 추가 값이 올바르게 채워집니다.ASP.MVC CachedDataAnnotationsModelMetadataProvider가 추가 값을 유지하지 않음

CreateMetadataPrototype(IEnumerable<Attribute> attributes, Type containerType, Type modelType, string propertyName) 

을 나는 사전에 추가하는 방법을 통해 공급자 내에서 값을 설정하고 내 사용자 지정 공급자 내

, 나는 무시하고있다.

그러나보기에서 ModelMetadata에 액세스하면 추가 데이터가 더 이상 채워지지 않습니다. ModelMetadata의 다른 특성은 채워지지만 추가 데이터 사전은 채워지지 않습니다. 캐싱 공급자 대신 표준 DataAnnotations 메타 데이터 공급자를 사용하도록 사용자 지정 metadataprovider를 전환하면 추가 값이 제대로 채워집니다. 내가 MVC 코드로 드릴 다운 할 때

, 그것은 완전히 반환 CachedDataAnnotationsModelMetadata 객체의 이식하지 않는 방법 CachedDataAnnotationsModelMetadata CreateMetadataFromPrototype (CachedDataAnnotationsModelMetadata 프로토 타입, Func을 modelAccessor)처럼 나타납니다. 이 방법을 재정의하여이 문제를 해결할 수 있지만 약간 이상하게 보입니다. 캐시 된 공급자를 잘못 사용하고 있습니다. 그렇다면 캐시 된 공급자에서 ModelMetadata를 처리하는 다른 방법이 있습니까?

+0

코드의 insted? .......... –

답변

1

사용 CreateMetadataFromPrototype()CreateMetadataPrototype()

관련 문제