在使用枚舉時,您經常需要檢索顯示名稱屬性以顯示其用戶友好的名稱。此Stack Overflow問題解決了此需求,尤其是在MVC Razor視圖的上下文中。
任務是從模型的Promotion屬性中創建所選值的列表,每個值都與其關聯的顯示名稱一起顯示。用戶提供的代碼片段演示了枚舉值的檢索,但缺乏檢索顯示名稱屬性的方法。
解決方案在於已接受答案中提供的EnumExtensions類:
public static class EnumExtensions { /// <summary> /// 一个通用的扩展方法,用于反射和检索应用于`Enum`的任何属性。 /// </summary> public static TAttribute GetAttribute<TAttribute>(this Enum enumValue) where TAttribute : Attribute { return enumValue.GetType() .GetMember(enumValue.ToString()) .First() .GetCustomAttribute<TAttribute>(); } }
使用此擴展方法,檢索顯示名稱屬性變得非常簡單:
var seasonDisplayName = Season.GetAttribute<DisplayAttribute>(); Console.WriteLine("现在是什么季节?"); Console.WriteLine(seasonDisplayName.Name);
在您的Razor視圖中,您可以按如下方式修改代碼以包含顯示名稱:
@currentPromotion.GetAttribute<DisplayAttribute>().Name
這種方法允許您在視圖中動態顯示枚舉成員的顯示名稱,從而提升用戶體驗。
以上是如何在MVC剃須刀視圖中顯示枚舉成員顯示名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!