Maison >développement back-end >C++ >Comment créer une liste déroulante à partir d'un enum dans ASP.NET MVC?

Comment créer une liste déroulante à partir d'un enum dans ASP.NET MVC?

Susan Sarandon
Susan Sarandonoriginal
2025-01-31 11:11:10432parcourir

Créez une liste de drop -down à partir d'une énumération dans ASP.NET MVC

Html.DropDownList La méthode d'extension dans ASP.NET MVC fournit un moyen de faciliter la création d'une liste de drop -down. Cependant, l'utiliser avec énumération peut être délicat.

Versions MVC 5.1 et au-dessus: utilisez Html.EnumDropDownListFor

MVC 5.1 a introduit la méthode d'extension Html.EnumDropDownListFor, simplifiant le processus de création d'une liste de drop -down à partir de l'énumération. Exemples comme suit:

<code class="language-csharp">@Html.EnumDropDownListFor(
    x => x.YourEnumField,
    "请选择类型", 
    new { @class = "form-control" })</code>
MVC Version 5: Utilisez

EnumHelper

Si vous utilisez MVC 5, vous pouvez utiliser la catégorie

: Microsoft.Web.Mvc.dll dans la concentration du programme EnumHelper

<code class="language-csharp">@Html.DropDownList("MyType", 
   EnumHelper.GetSelectList(typeof(MyType)) , 
   "请选择类型", 
   new { @class = "form-control" })</code>
Versions MVC 5 et ci-dessous: utilisez la méthode d'extension

Pour la version précédente de MVC 5, vous pouvez créer une méthode d'extension à convertir en

: SelectList

<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>
Cela vous permet d'utiliser la méthode

: ToSelectList

<code class="language-csharp">ViewData["taskStatus"] = task.Status.ToSelectList();</code>

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