2014-08-31 1 views
4

작동하지 않는 나는 다른 클래스에 대한 링크 인 가상 목록이 포함 된 엔티티 클래스가 "내 직원"이 DataAnnotation 클래스에 추가 함MVC DataAnnotation 표시 이름 가상 항목

[DisplayName("My Employee")] 
public virtual Employee Employee1 { get; set; } 

아직 작동하지 않습니다. DataAnnotation 클래스의 다른 항목은 잘 작동합니다.

+0

: https://stackoverflow.com/questions/6405937/using-properties-settings-default-as-an-argument-for-displayname – drneel

+0

에 따르면, Joshua Hayes의 답변 (http://stackoverflow.com/questions/2555759/wondering-why-displayname-attribute-is-ignored-in-labelfor-on-an-overridden-prop) DisplayNameAttribute 대신 DisplayAttribute를 사용하면 이 문제의 – Wouter

답변

4

외래 키가 아래와 같이 동시에, labelFor 대신 DisplaynameFor의 사용을 위해 자동으로 뷰를 만들 때 시각적 스튜디오 때문에 작동하지 않는 : 그래서 우리가 그것을 변경해야하는 대신 DataAnnotation의 두 번째 매개 변수에서 해당 값을 읽어

  @Html.LabelFor(model => model.Employee1.LastName, "Employee1") 

~ :

  @Html.LabelFor(model => model.Employee1.LastName, "My Employee") 
0

DataAnnotation을 원본 클래스 속성으로 지정해야합니다. DataAnnotation을 가상 속성에 제공하면 작동하지 않습니다. 나는 시험했다. 그러나 DataAnnotation을 원래 클래스의 속성에 제공하는 경우. 그것은 작동합니다.

예를 들면 :이 도움이 될 수

public partial class Languages 
{ 
    DataAnnotation here 
    public string Code { get; set; } 
    public string Name { get; set; } 
} 



public partial class Categories 
{ 

    public string Code { get; set; } 
    public string FKLanguageCode { get; set; } 
    public string Name { get; set; } 
    public Nullable<int> Order { get; set; } 

    DataAnnotation Not Here 
    public virtual Languages Languages { get; set; } 
}