2013-01-24 67 views
0

我正在設計一種記錄系統,其中日誌中的每個項目都伴隨着記錄它的用戶。 user類使用Data Annotations修改其顯示名稱。在我的log視圖中顯示User.Name時,我希望顯示不同的顯示名稱。虛擬成員的數據註解?

public class User 
{ 
    public int UserID {set;get;} 
    [DisplayName("User Name")] 
    public string Name{set;get;} 
} 

public class Log 
{ 
    public int LogID {set;get;} 
    public int UserID {set;get;} 

    public virtual User User{set;get;} 
} 

如果我使用下面的代碼在我看來,顯示的文字是「用戶名」。是否有辦法使用Data Annotations來製作DisplayName「受讓人」,還是需要手動進行此操作?

@Html.DisplayNameFor(model => model.User.Name) 

回答

0

這是問題,當您有連接到模型(顯示名稱)查看數據:有時你需要根據不同的看法不同的標籤。

在你的情況下,答案是否定的,你需要手動更改標籤。

或者,你將需要創建視圖的特定視圖模型:

public class LogViewModel 
{ 
    public int LogID {set;get;} 
    public int UserID {set;get;} 

    [Display(Name = "Assignee")] 
    public string UserName {set;get;} 
} 
+0

愛德華多,是真的有[顯示名稱()]註釋?如果是這樣,你需要下載一個特定的註解NuGet包嗎? –

+0

@DaveA:是一個錯誤。現在更正。 –

+0

@EduardoMolteni前面的語法,'[DisplayName(「SomeName」)]'是正確的。它是'System.ComponentModel'的一部分' – Jeff