Heim >Backend-Entwicklung >C++ >Wie rufe ich enum -Anzeigenamen in MVC -Rasiereransichten ab?
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.
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
<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!