【问题标题】:use enum display name in @html helper function在@html 辅助函数中使用枚举显示名称
【发布时间】:2014-03-01 20:02:06
【问题描述】:

考虑枚举

公共枚举教育 {

      [Display(Name="display for education 1")]
    Education1,

    [Display(Name="display for education 2")]
    Education2,

    [Display(Name="display for education 3")]
    Education3,         
}

现在,我想要一个包含上述显示值的下拉菜单

 @Html.DropDownListFor(
    model => model.Education,
    new SelectList(@Enum.GetValues(typeof(Education)))  
    new {@class = "default"}
)

我想要 显示名称(目前我得到了枚举字符串本身。 有人知道我怎样才能在 .cshtml 中提取它?

【问题讨论】:

    标签: asp.net-mvc razor enums asp.net-mvc-5


    【解决方案1】:

    看看这个

    public static string[] GetEnumDisplays(Type type)
        {
            var displays = new List<string>();
            foreach (FieldInfo f in type.GetFields(BindingFlags.Public | BindingFlags.Static))
            {
                object[] attr = f.GetCustomAttributes(typeof(DisplayAttribute), false);
                if (attr.Length != 0)
                {
                    var displayAttribute = (DisplayAttribute)attr[0];
                    displays.Add(displayAttribute.Name);
                }
                else
                {
                    displays.Add(f.Name);
                }
            }
    
            return displays.ToArray();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 2022-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多