虚拟成员的数据注释?

时间:2013-01-24 18:43:21

标签: c# asp.net-mvc

我正在设计一种日志记录系统,其中日志中的每个项目都由记录它的用户提供。 user类使用Data Annotations来修改其显示名称。在我的User.Name个视图中显示log时,我希望显示不同的显示名称。

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;}
}

如果我在视图中使用以下代码,则显示的文本为“用户名”。有没有办法使用DisplayName制作Data Annotations“受让人”,还是我需要手动执行此操作?

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

1 个答案:

答案 0 :(得分:0)

当您将视图数据附加到模型时(显示名称),这就是问题:有时您需要根据视图使用不同的标签。

在您的情况下答案是否定的,您需要手动更改标签。

或者,您需要为视图创建特定的viewModel:

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

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