无法在剃刀视图中获取枚举显示名称属性

时间:2016-11-30 12:52:05

标签: c# asp.net-mvc razor enums

我有一个带有Display(Name =)的枚举,我希望在Razor视图中显示,但我只获取该值。

 public enum Gender
 {
    [Display(Name = "Man woman")]
    EveryOne = 0,
    [Display(Name = "Man")]
    Man = 1,
    [Display(Name = "Woman")]
    Woman = 2
 }

剃刀:

 Is for: @Model.LectureGig.Gender

Html结果是:

  

适合:每个人

而不是:

  

适合:男人女人

1 个答案:

答案 0 :(得分:2)

像这样:

    public static class EnumExtensions
{
    public static string GetDisplayName(this Enum enumValue)
    {
        return enumValue.GetType()
                        .GetMember(enumValue.ToString())
                        .First()
                        .GetCustomAttribute<DisplayAttribute>()
                        .GetName();
    }
}

&安培;观点:

@Model.LectureGig.Gender.GetDisplayName()