在MVC開發(fā)中我們常常用到枚舉類型,通常枚舉類型在使用中是是用DropDownList,每次轉(zhuǎn)換不是什么好辦法。 通過擴(kuò)展加以實(shí)現(xiàn)此功能。
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();
}
}
我們通過擴(kuò)展Enum方法來實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換MVC中前臺(tái)使用List<SelectListItem>的應(yīng)用
前臺(tái)使用:
@Html.DorpDownList((List<SelectListItem>)TempData["枚舉類型"])
看起來不錯(cuò)。
后臺(tái)代碼應(yīng)用:
TempData["枚舉類型"] = ((Enum) 枚舉類型.默認(rèn)類型).ToSelectListItem();
擴(kuò)展第二個(gè)方法中,我們傳遞枚舉類型名,來判斷是否選中狀態(tài)。
TempData["枚舉類型"] = ((Enum) 枚舉類型.默認(rèn)類型).ToSelectListItem(“默認(rèn)類型”);