Heim >Backend-Entwicklung >C++ >Wie rufe ich enum -Anzeigenamen in MVC -Rasiereransichten ab?

Wie rufe ich enum -Anzeigenamen in MVC -Rasiereransichten ab?

Barbara Streisand
Barbara StreisandOriginal
2025-01-27 09:16:10631Durchsuche

How to Retrieve Enum Display Names in MVC Razor Views?

Zugriff auf Enum -Anzeigenamen in MVC Rasiermesseransichten

effizient Anzeigen von Enum -Anzeigenamen in Ihren MVC -Rasierer -Ansichten erfordert den Zugriff auf die Attributmetadaten. Dies kann mit einer benutzerdefinierten Erweiterungsmethode, die die Reflexion nutzt, elegant behandelt werden.

Erweiterungsmethode Ansatz

Die folgende Erweiterungsmethode liefert eine saubere Lösung:

<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>

Diese Methode verwendet Reflexion, um den Enumtyp zu untersuchen und das erste Attribut des angegebenen Typs (TAttribute) abzurufen

Praktische Implementierung

Hier erfahren Sie, wie Sie diese Erweiterungsmethode in Ihre Rasieransicht integrieren:

<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>
Dieser Code iteriert die

enum -Werte. Für jeden Wert in der Eigenschaft UserPromotion (unter der Annahme, dass es sich um einen Flags -Enum handelt), wird die Model.JobSeeker.Promotion DisplayAttribute Eigenschaft mithilfe der Erweiterungsmethode abgerufen und angezeigt. Dies stellt sicher, dass nur die ausgewählten Enum-Werte mit ihren benutzerfreundlichen Anzeignamen angezeigt werden. Name

Das obige ist der detaillierte Inhalt vonWie rufe ich enum -Anzeigenamen in MVC -Rasiereransichten ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn