枚举转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)

 

posted @   酒沉吟  阅读(1842)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示