在mvc 3.0中设置Dropdownlist

时间:2011-05-12 05:50:07

标签: c# asp.net-mvc asp.net-mvc-3

using (var db  = new PNUBOOKIR.Models.KowsarSiteEntities())
        {
            var q = (from m in db.GoodTypes
                    select new
                    {
                        GroupCode = m.GroupCode,
                        Text = m.Text
                    }).ToList();

        }         

如何在dropdownlist GroupCode中将其设置为Value和Text为ItemText如何在mvc 3.0中执行此操作?

已添加:

        public ActionResult Index()
    {
        using (var db = new PNUBOOKIR.Models.KowsarSiteEntities())
        {
            var q = from m in db.GoodTypes
                    where !m.GroupCode.Equals(null) && !m.Text.Equals(string.Empty) && !m.Text.Equals(null)
                    select new
                    {
                        GroupCode = m.GroupCode,
                        Text = m.Text
                    };
            ViewData["list"] = q.ToList().Select(t => new SelectListItem()
                             {
                                 Text = t.Text,
                                 Value = t.GroupCode.ToString(),
                                 Selected = true
                             });
        }      
        return View();
    } 

  <div>
        @using (Html.BeginForm())
        {

            System.Collections.IEnumerable ien = (System.Collections.IEnumerable)ViewData["list"];
            Html.DropDownList("lstGoodTypes", new SelectList(ien, "Value", "Text"));

        }
    </div>

它有效但结果没有下拉列表没有错误,并且没有下拉列表它很酷。

1 个答案:

答案 0 :(得分:1)

在您的控制器中,您可以:

ViewData["list"]=q.Select(t=>new SelectListItem
                                 {
                                     Text=t.Text,
                                     Value=t.GroupCode,
                                     Selected=<Here you have to return a boolean to decide if the item is selected>
                                  });

在您的视图中,您可以将其添加到表单中:

@Html.DropDownList("list")

在表单的post方法中,您需要一个名为list的参数,该类型与GroupCode相同,并对其进行相应的处理。