虚拟成员的数据注释

本文关键字:注释 数据 虚拟成员 | 更新日期: 2023-09-27 17:55:41

我正在设计一种日志记录系统,其中日志中的每个项目都伴随着记录它的用户。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)

虚拟成员的数据注释

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

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

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

public class LogViewModel
{
    public int LogID {set;get;}
    public int UserID {set;get;}
    [Display(Name = "Assignee")]
    public string UserName {set;get;}
}