MVC视图中Html.DropDownList()辅助方法的使用

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

 public ActionResult HelperDropDownList()
{
List<SelectListItem> listItem = new List<SelectListItem>{
new SelectListItem{Text="是",Value=""},
new SelectListItem{Text="否",Value=""}
};
ViewBag.List = new SelectList(listItem,"Value","Text","");
return View();
}

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

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

渲染的HTML是这样的:

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

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

 //后台用ViewData传值到页面,或者用ViewBag
public ActionResult HelperDropDownList()
{
List<SelectListItem> listItem = new List<SelectListItem>{
new SelectListItem{Text="是",Value="1"},
new SelectListItem{Text="否",Value="0",Selected=true}
};
//ViewBag.List = new SelectList(listItem, "Value", "Text", "");
ViewData["List"] = new SelectList(listItem, "Value", "Text", "");
return View();
}
 @using (Html.BeginForm("DropDownValue","Home"))
{
//只需将第一个参数写成对应的ViewData索引即可,或者对应的ViewBag索引
@Html.DropDownList("List","请选择")
<div>
<input type="submit" value="提交" />
</div>
}

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

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

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

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

 public ActionResult DropDownValue(string List)
{
ViewBag.Result = List;
return View();
}

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

上一篇:[APAC]手动截取当前活动窗口,并且按规则命名(1/2)


下一篇:C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi