Paptulaçait les dropdowns ASP.NET MVC avec des valeurs d'énumération
Les listes déroulantes de remplissage dynamique avec des valeurs d'énumération sont une exigence fréquente dans le développement ASP.NET MVC. Alors que la méthode d'extension Html.DropDownList
offre une approche simple, l'intégrer efficacement aux énumérations nécessite une attention particulière.
illustrons avec un exemple d'énumération définissant les types d'éléments:
public enum ItemTypes { Movie = 1, Game = 2, Book = 3 }
Approche simplifiée (MVC 5.1 et plus tard):
Pour les versions MVC 5.1 et supérieures, l'extension Html.EnumDropDownListFor
fournit une solution concise:
@Html.EnumDropDownListFor(x => x.YourEnumField, "Select Item Type", new { @class = "form-control" })
Cela lie directement la liste déroulante à la propriété ENUM de votre modèle.
MVC 5 et plus tôt:
Pour les versions MVC plus anciennes (5 et plus tôt), l'extension EnumHelper
offre une alternative viable:
@Html.DropDownList("MyType", EnumHelper.GetSelectList(typeof(ItemTypes)), "Select Item Type", new { @class = "form-control" })
Méthode d'extension personnalisée (pour MVC 5 et plus tôt):
Pour une réutilisabilité de code améliorée et une syntaxe plus propre dans les versions MVC 5 et antérieures, une méthode d'extension personnalisée est recommandée:
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); } } }
Cette méthode d'extension simplifie le processus:
ViewData["taskStatus"] = task.Status.ToSelectList();
Cette approche rend l'intégration des Enum dans vos listes déroulantes plus gérables et maintenables, quelle que soit votre version MVC. Choisissez la méthode qui convient le mieux à la version MVC de votre projet et au style de codage.
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!