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

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

Barbara Streisand
Freigeben: 2025-01-27 09:16:10
Original
676 Leute haben es durchsucht

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:

public static TAttribute GetAttribute<TAttribute>(this Enum enumValue)
    where TAttribute : Attribute
{
    return enumValue.GetType()
                    .GetMember(enumValue.ToString())
                    .First()
                    .GetCustomAttribute<TAttribute>();
}
Nach dem Login kopieren

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:

@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>
    }
}
Nach dem Login kopieren
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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage