<p>Pour MVC v5.1, utilisez Html.EnumDropDownListFor</p>
<pre><code class="lang-auto">@Html.EnumDropDownListFor(
x => x.YourEnumField,
"Select My Type",
new { @class = "form-control" })
</code></pre>
<p>Pour MVC v5, utilisez EnumHelper</p>
<pre><code class="lang-auto">@Html.DropDownList("MyType",
EnumHelper.GetSelectList(typeof(MyType)) ,
"Select My Type",
new { @class = "form-control" })
</code></pre>
<p>Pour MVC 5 et versions antérieures</p>
<p>J’ai transformé la réponse de Rune en méthode d’extension :</p>
<pre><code class="lang-auto">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></pre>
<p>Cela vous permet d’écrire :</p>
<pre><code class="lang-auto">ViewData["taskStatus"] = task.Status.ToSelectList();
</code></pre>
<p>en utilisant <code>using MyApp.Common</code></p>