ASP.NET MVC Razor ビューでの Enum メンバー名の表示
ASP.NET MVC Razor ビューで表示属性で拡張された列挙型を操作する場合、ユーザー フレンドリーなインターフェイスを作成するには、これらの表示名に効率的にアクセスすることが重要です。 この記事では、これを達成するための解決策を紹介します。
課題は、フラグ値に基づいて enum メンバーの表示名を取得することにあります。 一般的なアプローチには、リフレクションの使用が含まれます。 次の拡張メソッド GetAttribute()
はこれを容易にします:
<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 ビューに適用すると、改善されたコードは次のようになります:
<code class="language-csharp">@foreach (var aPromotion in Enum.GetValues(typeof(UserPromotion))) { var currentPromotion = (int)Model.JobSeeker.Promotion; if ((currentPromotion & aPromotion) == aPromotion) { @aPromotion.GetAttribute<DisplayAttribute>().Name } }</code>
この改訂された Razor コードは、GetAttribute()
メソッドを利用して、ループ内の各列挙メンバーの DisplayAttribute
を取得します。 取得された属性の Name
プロパティは、必要な表示名を提供します。 このアプローチにより、基になる列挙値の代わりにユーザーフレンドリーな名前が表示されるようになります。
以上がASP.NET MVC Razorビューでenumメンバーの名前を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。