Maison > développement back-end > C++ > Comment remplir les listes déroulantes ASP.NET MVC avec des valeurs d'énumération?

Comment remplir les listes déroulantes ASP.NET MVC avec des valeurs d'énumération?

Linda Hamilton
Libérer: 2025-01-31 11:06:11
original
620 Les gens l'ont consulté

How to Populate ASP.NET MVC Dropdowns with Enumeration Values?

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
}
Copier après la connexion

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" })
Copier après la connexion

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" })
Copier après la connexion

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);
        }
    }
}
Copier après la connexion

Cette méthode d'extension simplifie le processus:

ViewData["taskStatus"] = task.Status.ToSelectList();
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal