ASP.NET MVC Razor ビューでの拡張列挙型プレゼンテーションに表示名を利用する
[Display]
属性を使用して列挙メンバーを強化すると、Razor ビュー内で列挙値をよりクリーンでユーザー フレンドリーに表示できるようになります。このアプローチにより、選択された列挙型データの表示が簡素化されます。
属性取得のための拡張メソッドの利用
Razor 内で表示名に直接アクセスするには、カスタム拡張メソッドが必要です。この汎用拡張メソッドは、列挙型に適用される属性を取得します:
<code class="language-csharp">public static TAttribute GetAttribute<TAttribute>(this Enum enumValue) where TAttribute : Attribute { return enumValue.GetType() .GetMember(enumValue.ToString()) .First() .GetCustomAttribute<TAttribute>(); }</code>
Razor ビューでの拡張機能の実装
この拡張機能を使用すると、Razor ビュー内の表示属性へのアクセスが簡素化されます。
<code class="language-csharp">@foreach (int aPromotion in Enum.GetValues(typeof(UserPromotion))) { var currentPromotion = (int)Model.JobSeeker.Promotion; if ((currentPromotion & aPromotion) == aPromotion) { var displayAttribute = currentPromotion.GetAttribute<DisplayAttribute>(); <li>@displayAttribute?.GetName()</li> } }</code>
このコードは列挙値を反復処理し、モデルのプロパティとの一致を特定し、拡張子を使用して表示名を取得します。 @displayAttribute?.GetName()
は null 値を安全に処理し、表示名にアクセスします。
この拡張メソッドは、Razor ビューで列挙型表示名にアクセスして表示する合理的な方法を提供し、ASP.NET MVC アプリケーションの明瞭さとユーザー エクスペリエンスを向上させます。
以上がASP.NET MVC で Razor 構文を使用して Enum 表示名にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。