MVC视图模型中的自定义显示名称

时间:2019-06-19 14:05:16

标签: c# asp.net-mvc

我有一个MVC ViewModel类(此处是高度简化的示例),在这里我希望LabelFor和ValidationFor选择自定义显示名称。这是一个用户定义的名称,所以我不想使用硬编码名称,也不能使用本地化,因为显示名称是从要反序列化视图模型的JSON中返回给我的。

我想按照以下方式做些事情:

public class MyViewModel
{
    [DisplayName("UserField1Name")]
    public string UserField1 { get; set; }

    public string UserField1Name { get; set; }

    [DisplayName("UserField2Name")]
    public string UserField2 { get; set; }

    public string UserField2Name { get; set; }
}

但是,当前示例仅将该字段标记为UserField1Name,而没有使用相同的名称选择该属性的值。

有什么办法可以通过视图模型做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用LabelFor的重载代替DisplayName属性:

@Html.LabelFor(model => model.UserField2, Model.UserField2Name)