多个MVC3显示属性

时间:2012-08-21 14:48:33

标签: asp.net-mvc displayattribute

我在模型中有一个属性。让我们说电子邮件。

    <Display(Name:="Email")>
    <DataMember()>
    Public Property Email As String

我想在每个页面中为电子邮件使用不同的标签,所以基本上我问是否有办法为同一个字段使用两个显示属性?我希望有这样的东西 -

    <Display(Name:="Email")>
    <Display(Name:="Please Enter your Email")>
    <DataMember()>
    Public Property Email As String

然后在页面中选择要使用的标签。

有没有办法,我可以实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

[DisplayName("Please Enter your Email")] //cannot specify a ResourceType

[Display(Name:="Please Enter your Email")]

属性在编译时读取,并成为程序集元数据的一部分。您似乎想在运行时决定使用哪个标签。

为此,在您看来,您可以做类似的事情。

@if(crazyUser){
    <label for="Email">Alternate Label</label>
}
else{    
    @Html.LabelFor(m => m.Email)    
}

这是除[Display]属性之外的额外位。