1、自定义:

1 List<SelectListItem> list = new List<SelectListItem>(){
2  new SelectListItem(){ Text="请选择类型...", Value=""},
3  new SelectListItem(){ Text="所有", Value="0"},
4  new SelectListItem(){ Text="男人", Value="1"},
5  new SelectListItem(){ Text="女人", Value="2"},
6  new SelectListItem(){ Text="小孩", Value="3"}
7 };
8
9  ViewBag.ClassTypeList = list;


2、从数据源获取:


1 var oneList = new BLL.ZZ_OneClassBLL().GetModelList("Status=1");
2
3 oneList.Insert(0, new ZZ_OneClass() { Id = 0, Name = "-请选择-" });
4
5 ViewBag.OneClassList = new SelectList(oneList, "Id", "Name", selectedVaule);  //通过select生成

前台用DropDownList接收,其中DropDownList的第一个参数是下拉列表id,name的默认属性。


3、返回数据,前台拼接


 1 var twoList = new BLL.ZZ_TwoClassBLL().GetModelList("Status=1 and OneClassID=" + id);
2
3 List<SelectListItem> list = new List<SelectListItem>();
4
5foreach (var City in twoList)
6 {
7   list.Add(new SelectListItem { Text = City.Name, Value = City.Id.ToString() });
8 }
9
10return Json(list, JsonRequestBehavior.AllowGet);


前2种是后台封装好数据,前台一个dropdownlist搞定;最后一个适用前台发送异步请求到后台,后台返回数据,前台拼接


状态保持:自定义时,可通过前台强类型; 也可以在后台给定选定值【 可通过同名属性自动装配】