ASP.NET DropDownList 的使用

之前用MVC 5时,总是习惯先建字典然后转成SelectList,总有一种脱裤放屁的感觉。(需要引用[Microsoft.AspNetCore.Mvc.Rendering] ,在.NET Core 中没有直接被引用)

今天看了一下文档,官方用法是new 一个 List<SelectListItem>(),SelectListItem也需要[Microsoft.AspNetCore.Mvc.Rendering]

参考

SelectListItem Class

Using the DropDownList Helper with ASP.NET MVC

步骤

  1. 在视图使用DropDownList前,需要先在控制器准备SelectList。
    • new出List<SelectListItem>后,使用Add()方法添加SelectListItem条目
      var departs = db.departmentInfo.Select(x => x);
      
      foreach (var i in departs) {
          Items.Add(new SelectListItem { Text = i.dname, Value = i.dname });
      }
    • 如果想令视图中的DropDownList默认显示某一条目,可以在添加SelectListItem时指定Selected选项为true
      Items.Add(new SelectListItem { Text = i.dname, Value = i.dname, Selected = true });
    • 将SelectList添加入ViewBag,使视图可以调用
  2. 在视图中使用HtmlHelper添加DropDownList。
    //两种都可以,第一种需要将名称设置为ViewBag中的名称
    @Html.DropDownList("DepartList", null, new { @class = "form-control" })
    @Html.DropDownList("Department", ViewBag.DepartList as SelectList, new { @class = "form-control" }