在MVC開發中我們常常用到枚舉類型,通常枚舉類型在使用中是是用DropDownList,每次轉換不是什么好辦法。 通過擴展加以實現此功能。
public static class ExSelectListItem
{
public static List<SelectListItem> ToSelectListItem(this Enum valueEnum)
{
return (from int value in Enum.GetValues(valueEnum.GetType())
select new SelectListItem
{
Text = Enum.GetName(valueEnum.GetType(), value),
Value = value.ToString()
}).ToList();
}
public static List<SelectListItem> ToSelectListItem(this Enum valueEnum, string selectName)
{
return (from int value in Enum.GetValues(valueEnum.GetType())
select new SelectListItem
{
Text = Enum.GetName(valueEnum.GetType(), value),
Value = Enum.GetName(valueEnum.GetType(), value),
Selected = Enum.GetName(valueEnum.GetType(), value) == selectName ? true : false
}).ToList();
}
}
我們通過擴展Enum方法來實現自動轉換MVC中前臺使用List<SelectListItem>的應用
前臺使用:
@Html.DorpDownList((List<SelectListItem>)TempData["枚舉類型"])
看起來不錯。
后臺代碼應用:
TempData["枚舉類型"] = ((Enum) 枚舉類型.默認類型).ToSelectListItem();
擴展第二個方法中,我們傳遞枚舉類型名,來判斷是否選中狀態。
TempData["枚舉類型"] = ((Enum) 枚舉類型.默認類型).ToSelectListItem(“默認類型”);