Anzeigen von Enum-Mitgliedsnamen in ASP.NET MVC Razor-Ansichten
Beim Arbeiten mit Enumerationen, die durch Anzeigeattribute in ASP.NET MVC Razor-Ansichten erweitert wurden, ist der effiziente Zugriff auf diese Anzeigenamen für die Erstellung benutzerfreundlicher Schnittstellen von entscheidender Bedeutung. Dieser Artikel stellt eine Lösung vor, um dies zu erreichen.
Die Herausforderung besteht darin, die Anzeigenamen von Enum-Mitgliedern basierend auf ihren Flag-Werten abzurufen. Ein gängiger Ansatz ist die Reflexion. Die folgende Erweiterungsmethode GetAttribute()
erleichtert dies:
<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 ruft dynamisch alle Attribute ab, die einem Enumerationsmitglied zugeordnet sind.
Wenn Sie dies auf Ihre Razor-Ansicht anwenden, würde der verbesserte Code so aussehen:
<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>
Dieser überarbeitete Razor-Code nutzt die GetAttribute()
-Methode, um den DisplayAttribute
für jedes Enum-Mitglied in der Schleife zu erhalten. Die Name
-Eigenschaft des abgerufenen Attributs stellt dann den gewünschten Anzeigenamen bereit. Dieser Ansatz stellt sicher, dass benutzerfreundliche Namen anstelle der zugrunde liegenden Enum-Werte angezeigt werden.
Das obige ist der detaillierte Inhalt vonWie erhalte ich Anzeigenamen von Enum-Mitgliedern in ASP.NET MVC Razor-Ansichten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!