借鉴:http://www.cnblogs.com/suizhikuo/archive/2013/06/07/3125225.html

vs2012 mvc4

最终效果:

Enum简单例子DropdownListEnum简单例子DropdownListEnum简单例子DropdownList

1、建立mvc4 Internet应用程序

2、Models下建立Product.cs类

Enum简单例子DropdownList

 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类中添加实体集集合

          Enum简单例子DropdownList

            public DbSet<Product> Products { get; set; }

4、重新生成解决方案

5、添加控制器ProductController

Enum简单例子DropdownList

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修改

Enum简单例子DropdownList

@Html.EditorFor(model => model.TypeId) 修改为

  @Html.DropDownList("TypeId")

视图页面Edit修改

Enum简单例子DropdownList

@Html.EditorFor(model => model.TypeId) 修改为

  @Html.DropDownList("TypeId")

视图页面Index 修改

Enum简单例子DropdownList

 @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 ,得到的序列值和文本全是文字了,不知原因 注意

相关文章:

  • 2021-12-28
  • 2021-07-10
  • 2021-05-17
  • 2021-12-04
  • 2021-08-08
  • 2021-08-03
  • 2021-11-24
  • 2021-04-09
猜你喜欢
  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2021-11-20
相关资源
相似解决方案