To Bind Enum values into Dropdown of MVC Razor, we need to convert them into list of SelectListitem.
Following class helps to convert Enum to List Of SelectListItem
Following class helps to convert Enum to List Of SelectListItem
Class:
public static class EnumToSelectedListItem
{
public static List<SelectListItem>
ToSelectedListItem<T>()
{
List<SelectListItem>
dropdown = Enum.GetValues(typeof(T)).Cast<T>().
Select(v => new SelectListItem { Selected = false, Text = v.ToString(), Value = Convert.ToInt32(v).ToString()
}).ToList();
return
dropdown;
}
}
SelectListItem Class Datastructure (This class available in MVC)
//
Summary:
// Represents the
selected item in an instance of the System.Web.Mvc.SelectList
// class.
public class SelectListItem
{
// Summary:
// Initializes a
new instance of the System.Web.Mvc.SelectListItem class.
public
SelectListItem();
// Summary:
// Gets or sets a
value that indicates whether this System.Web.Mvc.SelectListItem
// is selected.
//
// Returns:
// true if the
item is selected; otherwise, false.
public bool Selected { get; set; }
//
// Summary:
// Gets or sets
the text of the selected item.
//
// Returns:
// The text.
public string Text { get; set; }
//
// Summary:
// Gets or sets
the value of the selected item.
//
// Returns:
// The value.
public string Value { get; set; }
}
Consume:
public List<SelectListItem>
PersonEnumList
{
get
{
return EnumToSelectedListItem.ToSelectedListItem<PersonEnum>();
}
}