Maison >développement back-end >C++ >Comment créer des listes déroulantes à partir d'énumérations dans ASP.NET MVC?

Comment créer des listes déroulantes à partir d'énumérations dans ASP.NET MVC?

Susan Sarandon
Susan Sarandonoriginal
2025-01-31 11:26:09607parcourir

How to Create Dropdown Lists from Enumerations in ASP.NET MVC?

Génération de listes déroulantes à partir d'énumérations dans ASP.NET MVC

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!

Déclaration:
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