2013-01-24 39 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