试图显示"名称"来自视图中枚举的属性

时间:2012-11-19 21:25:50

标签: asp.net-mvc-3 asp.net-mvc-4

我正在尝试检索下面的[Display]文本,无论在数据库中保存哪个枚举(即,如果为None,则相应的是“不,谢谢。”),而无需编写@if块代码在我看来。我想这不可能,但我想我会问。

public enum MyEnum
{
    [Display(Name = "No thanks.")]
    None,
    [Display(Name = "Yes, send me your 100 Packet.")]
    100Packet,
    [Display(Name = "Yes, send me your 200 Packet.")]
    200Packet
}

现在,我唯一的解决方案是在我看来这样做:

@Model.MyEnumRadioButton // displays saved item in DB (i.e., "100Packet")

@if (Model.MyEnumRadioButton == MyEnum.None)
{
    <text>No thanks.</text>
}
....

并对enum中的每个项重复此操作。对于这个小例子来说,这没什么大不了的,但我有很多不同的enum,有些可以选择多达10个。

例如,我可以使用@Model.MyEnumRadioButton来显示文字吗?

有什么想法?提前谢谢。

2 个答案:

答案 0 :(得分:2)

我找到了一个简单的问题答案:

MVC.net get enum display name in view without having to refer to enum type in view

我所要做的就是@MyEnum.100Packet.DisplayName()

答案 1 :(得分:1)

看到这篇文章,他正在使用描述属性来实现你的目标:

How do I have an enum bound combobox with custom string formatting for enum values?