Enum: 显示Description Attribute的值
1.定义一个Enum类型:
namespace MultipleLanguage.Models { public enum EnumDef { [Description("周一")] Monday, [Description("周二")] TuesDay, [Description("周三")] WendesDay, [Description("周四")] ThursDay } }
2.获取Enum类型上的Description值(Controller)
namespace MultipleLanguage.Controllers { public class ShowEnumDescriptionDemoController : Controller { // GET: ShowEnumDescriptionDemo public ActionResult Index() { Enum monday = MultipleLanguage.Models.EnumDef.Monday; ViewBag.Des = GetEnumDescription(monday); ViewBag.Des1 = GetEnumDesciptionCLD(monday); return View(); } //法一:MemberInfo.GetCustomAttributes private string GetEnumDescription(Enum value) { // Get the Description attribute value for the enum value FieldInfo fi = value.GetType().GetField(value.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); if (attributes.Length > 0) return attributes[0].Description; else return value.ToString(); } //法二:Attribute.GetCustomAttributes Method private string GetEnumDesciptionCLD(Enum value) { FieldInfo field = value.GetType().GetField(value.ToString()); DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; return attribute == null ? string.Empty : attribute.Description; } } }
3.Views
显示Enum类型的Description值
法一:MemberInfo.GetCustomAttributes Method
@ViewBag.Des法二:Attribute.GetCustomAttributes Method
@ViewBag.Des1
4.测试结果如下: