枚举转SelectList扩展方法
public enum Avbc
{
Red=1,
Blue=2,
Whilt=3,
Black=4
}
public static class EmumHelper { public static SelectList GetSelectListByEnum<TEnum>(this TEnum enumObj, int? selectedItem = null) { if (Enum.GetValues(typeof(TEnum)).Length > 0) { List<SelectListItem> listResult = new List<SelectListItem>(); foreach (TEnum e in Enum.GetValues(typeof(TEnum))) { if (selectedItem!=null && selectedItem == Convert.ToInt32(e)) // 选中 { SelectListItem item = new SelectListItem { Value = Convert.ToInt32(e).ToString(), // 传输值 Text = e.ToString(), // 显示值 Selected = true }; listResult.Add(item); } else { SelectListItem item = new SelectListItem // 不选中 { Value = Convert.ToInt32(e).ToString(), // 传输值 Text = e.ToString() // 显示值 }; listResult.Add(item); } } if (selectedItem != null) return new SelectList(listResult, "Value", "Text",selectedItem); else return new SelectList(listResult, "Value", "Text"); } return null; } }
Controller调用 Avbc.Black是枚举中随便一个项,扩展方法中会根据这个项找到这个枚举,然后全部列出
ViewBag.avbc = Avbc.Black.GetSelectListByEnum();
View强类型调用
@Html.DropDownListFor(m => m.avbc, ViewBag.avbc as SelectList, Model.avbc)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步