您的位置:首页 > 编程语言 > ASP

Asp.net Mvc Enum 扩展

2008-11-12 09:47 381 查看
消失月余,担心文笔生疏,今作简单一篇小文试手。

 

一直以来都觉得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();

}


这样我们就可以实现将Enum绑定在DropDownList了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: