Heim >Backend-Entwicklung >C++ >Wie erstelle ich Dropdown -Listen aus Aufzählungen in ASP.NET MVC?
ASP.NET MVC vereinfacht die Erstellung von Dropdown -Listen aus Aufzählungen mithilfe der Erweiterungsmethode Html.DropDownList
. Dieser Leitfaden zeigt effiziente Techniken zur Implementierung dieser Funktionalität.
für MVC -Versionen 5.1 und später rationalisiert die Html.EnumDropDownListFor
-Methode den Prozess. Geben Sie einfach die Modelleigenschaft an, die die Aufzählung, ein Dropdown -Etikett und alle gewünschten HTML -Attribute darstellt.
<code class="language-csharp">@Html.EnumDropDownListFor(x => x.YourEnumField, "Select Your Option", new { @class = "form-control" })</code>
Für MVC Version 5 bietet die EnumHelper
-Klasse eine bequeme Alternative. Verwenden Sie GetSelectList
, um eine SelectList
zu erhalten, die die Aufzählung darstellt:
<code class="language-csharp">@Html.DropDownList("MyOption", EnumHelper.GetSelectList(typeof(MyOption)), "Select Your Option", new { @class = "form-control" })</code>
Für MVC -Versionen 5 und früher liefert eine benutzerdefinierte Erweiterungsmethode (wie von Rune Westergren vorgeschlagen) eine kurze Lösung:
<code class="language-csharp">namespace MyApp.Common { public static class MyExtensions { public static SelectList ToSelectList<TEnum>(this TEnum enumObj) where TEnum : struct, IComparable, IFormattable, IConvertible { var values = from TEnum e in Enum.GetValues(typeof(TEnum)) select new { Id = e, Name = e.ToString() }; return new SelectList(values, "Id", "Name", enumObj); } } }</code>
Diese Erweiterungsmethode ermöglicht eine sauberere Syntax:
<code class="language-csharp">ViewData["taskStatus"] = task.Status.ToSelectList();</code>
Wählen Sie die für Ihre MVC -Version am besten geeignete Methode, um Dropdown -Listen effizient aus Ihren Aufzählungen zu generieren.
Das obige ist der detaillierte Inhalt vonWie erstelle ich Dropdown -Listen aus Aufzählungen in ASP.NET MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!