在 mvc 3.0 中设置下拉列表

本文关键字:设置 下拉列表 mvc | 更新日期: 2023-09-27 17:56:05

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

如何在下拉列表中将其设置为组码作为值,将文本设置为项目文本如何在 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>

它可以工作,但结果没有下拉列表,没有错误,也没有下拉列表,它很酷。

在 mvc 3.0 中设置下拉列表

在控制器中,您可以执行以下操作:

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 方法中,您需要有一个与 GroupCode 类型相同的名为 list 的参数,并对其进行相应的处理。