在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(“默認類型”);