Heim >Backend-Entwicklung >C++ >Wie werden die Anzeigenamen von Enum-Mitgliedern in einer MVC Razor-Ansicht angezeigt?
Wenn Sie mit Aufzählungen arbeiten, müssen Sie häufig die Eigenschaft „Anzeigename“ abrufen, um ihren benutzerfreundlichen Namen anzuzeigen. Diese Frage zum Stapelüberlauf befasst sich mit diesem Bedarf, insbesondere im Zusammenhang mit MVC Razor-Ansichten.
Die Aufgabe besteht darin, eine Liste ausgewählter Werte aus der Promotion-Eigenschaft des Modells zu erstellen, wobei jeder Wert zusammen mit dem zugehörigen Anzeigenamen angezeigt wird. Der vom Benutzer bereitgestellte Codeausschnitt demonstriert den Abruf des Aufzählungswerts, es fehlt jedoch eine Möglichkeit, die Eigenschaft des Anzeigenamens abzurufen.
Die Lösung liegt in der EnumExtensions-Klasse, die in der akzeptierten Antwort bereitgestellt wird:
<code class="language-csharp">public static class EnumExtensions { /// <summary> /// 一个通用的扩展方法,用于反射和检索应用于`Enum`的任何属性。 /// </summary> public static TAttribute GetAttribute<TAttribute>(this Enum enumValue) where TAttribute : Attribute { return enumValue.GetType() .GetMember(enumValue.ToString()) .First() .GetCustomAttribute<TAttribute>(); } }</code>
Das Abrufen der Anzeigenameneigenschaft wird mit dieser Erweiterungsmethode sehr einfach:
<code class="language-csharp">var seasonDisplayName = Season.GetAttribute<DisplayAttribute>(); Console.WriteLine("现在是什么季节?"); Console.WriteLine(seasonDisplayName.Name);</code>
In Ihrer Razor-Ansicht können Sie den Code wie folgt ändern, um den Anzeigenamen einzuschließen:
<code class="language-csharp">@currentPromotion.GetAttribute<DisplayAttribute>().Name</code>
Dieser Ansatz verbessert die Benutzererfahrung, indem er Ihnen ermöglicht, die Anzeigenamen von Aufzählungsmitgliedern dynamisch in der Ansicht anzuzeigen.
Das obige ist der detaillierte Inhalt vonWie werden die Anzeigenamen von Enum-Mitgliedern in einer MVC Razor-Ansicht angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!