Heim > Backend-Entwicklung > C++ > Wie rufe ich Enum-Anzeigenamen in ASP.NET MVC Razor-Ansichten ab?

Wie rufe ich Enum-Anzeigenamen in ASP.NET MVC Razor-Ansichten ab?

Linda Hamilton
Freigeben: 2025-01-27 09:26:12
Original
784 Leute haben es durchsucht

How to Retrieve Enum Display Names in ASP.NET MVC Razor Views?

Der Name des Namens

im MVC -Rasierer Code

In der ASP.NET -MVC -Rasieransicht ist der Anzeigenname des Zugriffs von Aufzählungsmitgliedern von wesentlicher Bedeutung, um den Benutzern eine freundliche Beschreibung zu beschreiben. In diesem Artikel wird erläutert, wie diese Anzeignamen im Kontext des MVC -Rasierungscode abgerufen werden.

Problembeschreibung

Bei einem Auftriebsmitglied, das [Anzeige] Attribute ändert, fordern die Herausforderungen, diese Anzeignamen im Rasierer Code zu extrahieren. Der Autor beabsichtigt, eine Liste mit dem Auswahlwert der aufgezählten Promotion zu füllen, und jeder Wert zeigt den entsprechenden Anzeigenamen.

Lösung

Um dieses Problem zu lösen, verwenden wir eine Erweiterungsmethode, um die Provinz in der Provinz zu erstellen und nach bestimmten Attributen zu suchen, die für ihre Mitglieder angewendet werden. Das Folgende ist der Code der Erweiterungsmethode:

Diese Methode wird als allgemeine Methode zum Abrufen von Attributen verwendet, die für die Aufzählungsmitglieder angewendet werden. In unserem Beispiel möchten wir die [Anzeige] Eigenschaft abrufen, um das Namensattribut zu erhalten.

<code class="language-csharp">public static class Extensions
{
    public static TAttribute GetAttribute<TAttribute>(this Enum enumValue)
        where TAttribute : Attribute
    {
        return enumValue.GetType()
            .GetMember(enumValue.ToString())
            .First()
            .GetCustomAttribute<TAttribute>();
    }
}</code>
Nach dem Login kopieren
Implementierung in Rasieransicht

Verwenden der Erweiterungsmethode können wir jetzt den Rasierer Code wie folgt ändern:

Dieser Code ruft die Eigenschaft [Anzeige] der aktuellen Promotion ab und greift auf seine Namenseigenschaft zu, um den entsprechenden Anzeigenamen im Listenelement anzuzeigen. Beachten Sie, dass der geänderte Code

für die Typumwandlung verwendet wird, was sicherer und zuverlässiger ist, um Attribute zu erhalten.

<code class="language-csharp">@foreach (int aPromotion in Enum.GetValues(typeof(UserPromotion)))
{
    var currentPromotion = (int)Model.JobSeeker.Promotion;
    if ((currentPromotion & aPromotion) == aPromotion)
    {
       var displayName = ((UserPromotion)aPromotion).GetAttribute<DisplayAttribute>().Name;
       <li>@displayName</li>
    }
}</code>
Nach dem Login kopieren
Beispiel verwendet

((UserPromotion)aPromotion)

Verwandte Beispieldemonstration, finden Sie im folgenden Codefragment:

Ausgabe:

<code class="language-csharp">public class Foo
{
    public Season Season { get; set; }

    public void DisplayName()
    {
        var seasonDisplayName = Season.GetAttribute<DisplayAttribute>();
        Console.WriteLine("Which season is it?");
        Console.WriteLine(seasonDisplayName?.Name ?? "Unknown"); // 使用空合并运算符处理可能为null的情况
    }
}

public enum Season
{
    [Display(Name = "It's autumn")]
    Autumn,
    [Display(Name = "It's winter")]
    Winter,
    [Display(Name = "It's spring")]
    Spring,
    [Display(Name = "It's summer")]
    Summer
}</code>
Nach dem Login kopieren
Der verbesserte Code ist robuster, mit potenziellen Luftzitieranomalien umzugehen und deutlicher zu zeigen, wie die Erweiterungsmethode in der Rasieransichtsansicht korrekt verwendet wird, um den Anzeigenamen zu erhalten.

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

Quelle:php.cn
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