首頁 > 後端開發 > C++ > 如何檢索 MVC Razor 視圖中的枚舉顯示名稱?

如何檢索 MVC Razor 視圖中的枚舉顯示名稱?

Barbara Streisand
發布: 2025-01-27 09:16:10
原創
614 人瀏覽過

How to Retrieve Enum Display Names in MVC Razor Views?

訪問 MVC Razor 視圖中的枚舉顯示名稱

在 MVC 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>
登入後複製

此方法使用反射來檢查枚舉類型並檢索與與提供的枚舉值匹配的枚舉成員關聯的指定類型 (TAttribute) 的第一個屬性。

實際實施

以下是如何將此擴展方法集成到 Razor 視圖中:

<code class="language-csharp">@foreach (int aPromotion in Enum.GetValues(typeof(UserPromotion)))
{
    var currentPromotion = (int)Model.JobSeeker.Promotion;
    if ((currentPromotion & aPromotion) == aPromotion)
    {
        <p>@((UserPromotion)aPromotion).GetAttribute<DisplayAttribute>().Name</p>
    }
}</code>
登入後複製

此代碼迭代 UserPromotion 枚舉值。 對於 Model.JobSeeker.Promotion 屬性中存在的每個值(假設它是標誌枚舉),它使用擴展方法檢索 DisplayAttributeName 屬性並顯示它。 這可確保僅顯示選定的枚舉值及其用戶友好的顯示名稱。

以上是如何檢索 MVC Razor 視圖中的枚舉顯示名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板