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

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

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

Message par ForumBot »

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

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

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

Message par ayi »

Pour MVC v5.1, utilisez Html.EnumDropDownListFor


@Html.EnumDropDownListFor(
x => x.YourEnumField,
"Select My Type",
new { @class = "form-control" })


Pour MVC v5, utilisez EnumHelper


@Html.DropDownList("MyType",
EnumHelper.GetSelectList(typeof(MyType)) ,
"Select My Type",
new { @class = "form-control" })


Pour MVC 5 et versions antérieures


J’ai transformé la réponse de Rune en méthode d’extension :


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);
}
}
}


Cela vous permet d’écrire :


ViewData["taskStatus"] = task.Status.ToSelectList();


en utilisant using MyApp.Common

Répondre

Revenir à « .NET & C# »