你的位置:首页 > ASP.net教程

[ASP.net教程]MVC视图中Html.DropDownList()辅助方法的使用


我们先在控制器中准备好一个SelectList类型,然后通过ViewBag.List传入视图中。SelectList类型是ASP.NET MVC专门列表有关的HTML辅助方法提供选项的,例如,Html.DropDownList()、Html.ListBox()都可以使用。

1 public ActionResult HelperDropDownList()2     {3       List<SelectListItem> listItem = new List<SelectListItem>{4         new SelectListItem{Text="是",Value="1"},5         new SelectListItem{Text="否",Value="0"}6       };7       ViewBag.List = new SelectList(listItem,"Value","Text","");8       return View();9     }

然后在视图中就可以创建下拉列表了。

@Html.DropDownList("List", ViewBag.List as SelectList, "请选择")

渲染的HTML是这样的:

1 <select name="List" id="List">2 <option value="">请选择</option>3 <option value="1">是</option>4 <option value="0">否</option>5 </select>

还有,若是后台数据使用ViewData传到视图时,可以这样写:

 1 //后台用ViewData传值到页面 2 public ActionResult HelperDropDownList() 3     { 4       List<SelectListItem> listItem = new List<SelectListItem>{ 5         new SelectListItem{Text="是",Value="1"}, 6         new SelectListItem{Text="否",Value="0",Selected=true} 7       }; 8       //ViewBag.List = new SelectList(listItem, "Value", "Text", ""); 9       ViewData["List"] = new SelectList(listItem, "Value", "Text", ""); 10       return View();11     }

1 @using (Html.BeginForm("DropDownValue","Home"))2 {
//只需将第一个参数写成对应的ViewData索引即可3 @Html.DropDownList("List","请选择")4 <div>5 <input type="submit" value="提交" />6 </div>7 }

 

 --------------------------------------------------------------------------------------------------------------

那么,在视图页面的下拉列表被选择的值怎么传到Controlloer的方法进行处理呢?可以这样:

1 @using (Html.BeginForm("DropDownValue","Home"))2 {3   @Html.DropDownList("List", ViewBag.List as SelectList, "请选择")4   <div>5     <input type="submit" value="提交" />6   </div>7 8 }

将下拉列表置于表单当中,当表单提交时,被选中的值就被提交到控制器方法。

1 public ActionResult DropDownValue(string List)2 {3    ViewBag.Result = List;4    return View();5 }

注意接受值的方法的参数名称与html标签的id保持一致性。