Enum简单例子DropdownList
借鉴:http://www.cnblogs.com/suizhikuo/archive/2013/06/07/3125225.html
vs2012 mvc4
最终效果:



1、建立mvc4 Internet应用程序
2、Models下建立Product.cs类

public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int TypeId { get; set; }
}
public enum TypeName
{
糖果类,
干果类,
水果类
}
public class EnumExt
{
public static 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;
}
}
3、在AccountModels.cs下 数据库上下文UsersContext类中添加实体集集合

public DbSet<Product> Products { get; set; }
4、重新生成解决方案
5、添加控制器ProductController

6、ProductController.cs下 Create方法 ,添加
public ActionResult Create() { ViewBag.TypeId = new SelectList(EnumExt.ToListItem<TypeName>(), "Value", "Text"); return View(); }
Edit方法 ,添加
public ActionResult Edit(int id = 0) { Product product = db.Products.Find(id); ViewBag.TypeId = new SelectList(EnumExt.ToListItem<TypeName>(), "Value", "Text",product.TypeId); if (product == null) { return HttpNotFound(); } return View(product); }
7、视图页面Create修改

@Html.EditorFor(model => model.TypeId) 修改为
@Html.DropDownList("TypeId")
视图页面Edit修改

@Html.EditorFor(model => model.TypeId) 修改为
@Html.DropDownList("TypeId")
视图页面Index 修改

@Html.DisplayFor(modelItem => item.TypeId)修改为
@Enum.GetName(typeof(MvcApplication2.Models.TypeName),item.TypeId)
8、运行 添加数据 查看
源代码:http://pan.baidu.com/s/1i3xBIF7
后来发现:
foreach (int s in Enum.GetValues(typeof(T))) 此处若 int s写为 var s ,得到的序列值和文本全是文字了,不知原因 注意

浙公网安备 33010602011771号