2011-08-19 3 views
0

이미 모델 이름 속성이없는 모델 속성에 표시 이름 속성을 추가 할 수 있다면 뭔가 멋지다 고 생각할 수 있습니다. 아이디어는 내가 FirstName이라는 속성을 가지고 있다면 그것을 단지 기울여서 "First Name"으로 만들 수 있다는 것입니다.MVC3에 표시 이름 속성을 지정하면 즉시 표시 이름 속성을 추가 할 수 있습니까?

MVC는 모든 것에 대한 공급자 모델을 갖고있는 것 같습니다. 이 작업을 수행하는 데 사용할 수있는 것이 있습니까?

답변

1

네, 그렇게 할 수 있습니다. 자신 만의 ModelMetaDataprovider를 만들고 DisplayName을 재정의하면됩니다.

3

이를 Doug의 답변이 확장 된 버전입니다.

public class MyModelMetadataProvider : DataAnnotationsModelMetadataProvider 
{ 
    public override ModelMetadata GetMetadataForProperty(Func<object> modelAccessor, Type containerType, string propertyName) 
    { 
     var result = base.GetMetadataForProperty(modelAccessor, containerType, propertyName); 
     if (result.DisplayName.IsEmpty()) result.DisplayName = propertyName.InflectTo().Titleized; 
     return result; 
    } 
} 

등과 같은 글로벌 asax에서 MVC에 등록 :

ModelMetadataProviders.Current = new MyModelMetadataProvider(); 
+0

는 당신이'.InflectTo()'확장 방법에 대한 자세한 내용을 제공 할 수 있을까요? – StriplingWarrior

관련 문제