ASP.NET MVC simplifie la création de listes déroulantes à partir d'énumérations à l'aide de la méthode d'extension Html.DropDownList
. Ce guide démontre des techniques efficaces pour implémenter cette fonctionnalité.
Pour les versions MVC 5.1 et ultérieurement, la méthode Html.EnumDropDownListFor
rationalise le processus. Fournissez simplement la propriété modèle représentant l'énumération, une étiquette déroulante et tout attribution HTML souhaité.
<code class="language-csharp">@Html.EnumDropDownListFor(x => x.YourEnumField, "Select Your Option", new { @class = "form-control" })</code>
Pour MVC version 5, la classe EnumHelper
offre une alternative pratique. Utilisez GetSelectList
pour obtenir un SelectList
représentant l'énumération:
<code class="language-csharp">@Html.DropDownList("MyOption", EnumHelper.GetSelectList(typeof(MyOption)), "Select Your Option", new { @class = "form-control" })</code>
Pour les versions MVC 5 et plus tôt, une méthode d'extension personnalisée (comme suggéré par Rune Westergren) fournit une solution concise:
<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>
Cette méthode d'extension permet une syntaxe plus propre:
<code class="language-csharp">ViewData["taskStatus"] = task.Status.ToSelectList();</code>
Choisissez la méthode la plus appropriée pour que votre version MVC génére efficacement des listes déroulantes à partir de vos énumérations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!