ASP.NET MVC把数据库中枚举项的数字转换成文字(枚举类转json)太疯狂了

随心笔谈9个月前更新 admin
211 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了一个名为`EnumExt`的C#类,该类包含两个静态方法: 1. `GetEnumDescription(object e)`:该方法用于获取枚举项的注释信息。它通过遍历枚举项的字段,并检查是否存在自定义属性`EnumDisplayNameAttribute`,如果找到该属性,则返回其值;否则返回枚举项的名称。 2. `GetSelectList(Type enumType)`:该方法用于生成一个选择列表,其中包含枚举项的选择项。每个选择项的文本由`GetEnumDescription`方法获取,值为枚举项的整数表示。 文章整体上通过代码展示了如何自定义枚举项的注释和选择列表的生成方式。

 public class EnumExt
{
/// <summary>
/// 获取枚举项的注释
/// </summary>
/// <param name=”e”>枚举项</param>
/// <returns></returns>
public static string GetEnumDescription(object e)
{
//获取枚举项
Type t=e.GetType();
//获取枚举项的字段
FieldInfo[] fis=t.GetFields();
foreach (FieldInfo fi in fis)
{
//如果当前字段名称不是当前枚举项
if (fi.Name !=e.ToString())
{
continue;//结束本次循环
}
//如果当前字段的包含自定义特性
if (fi.IsDefined(typeof (EnumDisplayNameAttribute), true))
{
//获取自定义特性的属性值
return (fi.GetCustomAttributes(typeof(EnumDisplayNameAttribute), true)[0] as EnumDisplayNameAttribute).DisplayName;
}
}
return e.ToString();
}
public static List<SelectListItem> GetSelectList(Type enumType)
{
List<SelectListItem> selectList=new List<SelectListItem>();
//selectList.Add(new SelectListItem{Text=”–请选择–“,Value=””});
foreach (object e in Enum.GetValues(enumType))
{
selectList.Add(new SelectListItem { Text=GetEnumDescription(e), Value=((int)e).ToString() });
}
return selectList;
}
}

© 版权声明

相关文章