Внимание! Это перевод вопроса How do you create a dropdownlist from an enum in ASP.NET MVC?
Я хочу создать выпадающий список Html.DropDownList на основе моего перечисления:
public enum ItemTypes
{
Movie = 1,
Game = 2,
Book = 3
}
Как мне это реализовать?
@Html.EnumDropDownListFor(
x => x.YourEnumField,
"Select My Type",
new { @class = "form-control" })
Также в этой версии поддерживается атрибут Display: вы можете добавить к каждому значению перечисления атрибуты вида [Display(Name = "Sample")] и тот же самый код будет выводить в выпадающий список ваши сообщения.
@Html.DropDownList("MyType",
EnumHelper.GetSelectList(typeof(MyType)) ,
"Select My Type",
new { @class = "form-control" })
Используйте следующий extention:
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);
}
}
}
Это позволит вам писать так:
ViewData["taskStatus"] = task.Status.ToSelectList();
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости