HomeController控制器中的Index动作代码如下:
public ActionResult Index()
{
List<SelectListItem> list = new List<SelectListItem>()
{
new SelectListItem(){Text= " 张三 ",Value= " 001 "},
new SelectListItem(){Text= " 李四 ",Value= " 002 "},
new SelectListItem(){Text= " 王五 ",Value= " 003 "},
new SelectListItem(){Text= " 赵六 ",Value= " 004 "},
new SelectListItem(){Text= " 田七 ",Value= " 005 ",Selected= true}
};
ViewData[ " nameList "] = list;
return View();
}
{
List<SelectListItem> list = new List<SelectListItem>()
{
new SelectListItem(){Text= " 张三 ",Value= " 001 "},
new SelectListItem(){Text= " 李四 ",Value= " 002 "},
new SelectListItem(){Text= " 王五 ",Value= " 003 "},
new SelectListItem(){Text= " 赵六 ",Value= " 004 "},
new SelectListItem(){Text= " 田七 ",Value= " 005 ",Selected= true}
};
ViewData[ " nameList "] = list;
return View();
}
对应的View,将数据绑定到View的Html.DropDownList和Html.ListBox上
<%
SelectList list = ViewData[ " nameList " ] as SelectList;
%>
<!-- 注意使用DropDownList或ListBox指定第一个参数name,
会当成键自动到ViewData的集合ViewDataDirectory中去搜索对应的值,
搜索不到则报异常.所以这里name参数必须和ViewData所存放数据的键值一样 -->
<% = Html.DropDownList( " nameList " , list) %>
<!-- 直接指定名称也可以完成数据绑定,因为前面说了会到ViewDataDirectory去搜索 -->
<% = Html.ListBox( " nameList " ) %>
<!-- 由于指定的同一个nameList作为html控件的id和name所以我们要修改其id,因为在html中id通常是唯一的 -->
<% = Html.ListBox( " nameList " , list, new { id = " myNameList " }) %>
SelectList list = ViewData[ " nameList " ] as SelectList;
%>
<!-- 注意使用DropDownList或ListBox指定第一个参数name,
会当成键自动到ViewData的集合ViewDataDirectory中去搜索对应的值,
搜索不到则报异常.所以这里name参数必须和ViewData所存放数据的键值一样 -->
<% = Html.DropDownList( " nameList " , list) %>
<!-- 直接指定名称也可以完成数据绑定,因为前面说了会到ViewDataDirectory去搜索 -->
<% = Html.ListBox( " nameList " ) %>
<!-- 由于指定的同一个nameList作为html控件的id和name所以我们要修改其id,因为在html中id通常是唯一的 -->
<% = Html.ListBox( " nameList " , list, new { id = " myNameList " }) %>
生成的HTML代码如下: