asp.net-mvc – MVC.net获取枚举显示名称而不必参考枚举类型在视
发布时间:2020-12-15 18:45:28 所属栏目:asp.Net 来源:网络整理
导读:我在ViewModelBase类中具有以下帮助方法,它由其他视图模型继承: public string GetEnumNameT(Enum value) { Type enumType = typeof(T); var enumValue = Enum.GetName(enumType,value); MemberInfo member = enumType.GetMember(enumValue)[0]; var attrs
我在ViewModelBase类中具有以下帮助方法,它由其他视图模型继承:
public string GetEnumName<T>(Enum value) { Type enumType = typeof(T); var enumValue = Enum.GetName(enumType,value); MemberInfo member = enumType.GetMember(enumValue)[0]; var attrs = member.GetCustomAttributes(typeof(DisplayAttribute),false); var outString = ((DisplayAttribute)attrs[0]).Name; if (((DisplayAttribute)attrs[0]).ResourceType != null) { outString = ((DisplayAttribute)attrs[0]).GetName(); } return outString; } 我就这样从这个角度来看: <p> @{var rel = Model.GetEnumDisplayName<Enums.wheteverEnum>(Model.wheteverEnum); } @rel </p> 问题是 – 我可以使用这种方法,所以我不必告诉它枚举的类型?基本上我想对所有的枚举做这个: @ Model.GetEnumDisplayName(Model.wheteverEnum) 没有类型,没有T,不需要添加对枚举命名空间在视图…中的引用 可能? 解决方法
您可以简单地删除类型参数并使其成为扩展方法。
public static string DisplayName(this Enum value) { Type enumType = value.GetType(); var enumValue = Enum.GetName(enumType,value); MemberInfo member = enumType.GetMember(enumValue)[0]; var attrs = member.GetCustomAttributes(typeof(DisplayAttribute),false); var outString = ((DisplayAttribute)attrs[0]).Name; if (((DisplayAttribute)attrs[0]).ResourceType != null) { outString = ((DisplayAttribute)attrs[0]).GetName(); } return outString; } @Model.wheteverEnum.DisplayName() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在Generic Repository中定义Default构造函数
- asp.net-web-api – 默认请求标头不接受任何值,它始终为nul
- asp.net-mvc – Rotativa / Wkhtmltopdf图像无法显示
- asp.net-mvc-3 – MVC3视图继承不可能?
- 是否有可能在ASP.NET Webforms中实现HTML5等新标准?
- asp.net-web-api – 在身份验证过滤器中的ChallengeAsync方
- asp.net-mvc-3 – ASP.NET MVC3 – Html.TextBoxFor和autof
- asp.net-web-api – 为什么我的ApiController方法的ModelSt
- 深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔
- asp.net-mvc – 如何将IoC成员资格提供程序与ASP.NET MVC集
推荐文章
站长推荐
- asp.net-mvc – asp.net web farm中丢失的会话状
- 具有EntityDataSource的一个ASP.NET GridView中的
- asp.net – Windows应用程序与Web应用程序开发
- ASP.NET MVC的MS应用程序示例?
- ASP.NET MVC中是否有嵌套主页?
- asp.net-mvc-3 – ASP.NET MVC 3:如何在控制器方
- asp.net-mvc – 跟踪广告系列,来自gmail的奇怪行
- ASP.NET+d3.js实现Sqlserver数据库的可视化展示
- asp.net-core – 如何使用Autofac和ASP.NET Core
- asp.net – 为Umbraco预订建议
热点阅读