Asp.net Mvc Enum 扩展
消失月余,担心文笔生疏,今作简单一篇小文试手。
一直以来都觉得enum、struct以及class是编程的基础结构。
我们通常意图用枚举来表示一些名称的值属性。有的时候用Enum来填充DropDownList也算是不错的选择。
假设我们有一个enum:
public enum Role{ User = 0, Admin = 1024 }
我们想要实现如此效果:
因为enum本身并没有IEnumerable接口,所以不能直接使用new SelectList(Role);来将之填充DropDownList。
但是我们可以写一个静态方法将之转为IEnumerable。
public class EnumExt{ static public List<ListItem> ToListItem<T>(){ List<ListItem> li = new List<ListItem>(); foreach (int s in Enum.GetValues(typeof(T))){ li.Add(new ListItem{ Value = s.ToString(), Text = Enum.GetName(typeof (T), s) } ); } return li; } }
View文件中我们加入以下helper:
<%=Html.DropDownList("enumlist") %>
然后我们在Controller的action中写如下绑定即可
public ActionResult Index()
{
ViewData["enumlist"] = new SelectList(EnumExt.ToListItem<Role>(),"value","text");
return View();
}
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步