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号
浙公网安备 33010602011771号