wtuqi
2/23/2020 - 4:43 AM

MVC4下拉列表

 '数据库取
 '控制器 GET: /DorList/
        Private Sub GetDorlist() '写入查询字段到ViewData
            Dim DorList As New List(Of SelectListItem)
            Dim q = (From m In db.Dormitory Select New With {m.DorNo, m.Num_Bed})
            For Each m In q
                DorList.Add(New SelectListItem() With {.Text = m.DorNo, .Value = m.DorNo})
            Next
            ViewData("DorList") = DorList
        End Sub
Controller
        public ActionResult Index()
        {
                  var SelectItems = new List<dynamic>(){
                    new { id = 1, name="society"},
                    new { id = 2, name="Asp.NET"},
                    new { id = 3, name="C++"},
                    new {id=4,name="DataBase"}
                };
                //单填加方法
                 listItem.Add(new SelectListItem { Text = "5", Value = "MVC" });
                //SelectList : 使用SelectList辅助类构建(可不用)
                  ViewBag.SelectItem = new SelectList(SelectItems, "id", "name", 2);
                 
                //使用SelectListItem对象集合
                var SexItems = new List<SelectListItem> {
                    // new SelectListItem{ Text="男", Value="1", Selected=true},
                    // new SelectListItem{ Text="女", Value="0"}
                };
                return View(SexItems);
        }
        
        
              [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "UserID,AchievementID,AchievementName,score,AchieveTime,Description")] Achievement achievement)
        {
            if (ModelState.IsValid)
            {
                MDB.Add(achievement);
                MDB.Save();
                //db.Achievement.Add(achievement);
                //db.SaveChanges();
                return RedirectToAction("Index");
            }
            else //自定义接口类中当验证失败时同样需要回传用户选择值到页面,否则经常出现 
                //ViewData 项属于类型“System.String”,但它必须属于类型“IEnumerable<SelectLis的误导
            {
                ViewBag.List = new SelectList(listItem, "Text", "Value");
            }
            return View(achievement);
        }
View
@Html.DropDownList("SelectItem", ViewBag.SelectItem as IEnumerable<SelectListItem>,"---sdfsdfsdfsdf---", new { id = "person_id" })
  <!--视图部分-->
        <div class="editor-label">
            @Html.LabelFor(Function(model) model.DorNo)
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(Function(m) Model.DorNo, TryCast(ViewData("DorList"), List(Of SelectListItem)), "---宿舍选择---")
            @Html.ValidationMessageFor(Function(model) model.DorNo)
        </div>