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传值到页面,或者用ViewBag
 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索引即可,或者对应的ViewBag索引
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保持一致性。

原文地址:https://www.cnblogs.com/wangyihome/p/4533801.html