MVC中使用DropDownList
MVC中使用DropDownListASP.NET MVC中DropDownList与TextBox等控件不同,它使用的是select标记。它需要两个值:在下拉框中显示的列表,和默认选项。而自动绑定一次只能绑定一个属性,因此你需要根据需要选择是绑定列表,还是默认选项。
一、MVC中DropDownList的构造方法
public static string DropDownList(this HtmlHelper htmlHelper,
string name,
IEnumerable<SelectListItem> selectList,
string optionLabel,
IDictionary<string,object> htmlAttributes)
selectList参数说明
1、selectList包含
Items:用于在select标记中出现的列表,通常使用option标记表示。IEnumerable类型。
DataTextField:作为option的text项,string类型。
DataValueField:作为option的value项,string类型。
SelectedValues:选中项的value值,IEnumerable类型。
2、SelectList构造函数
public SelectList(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)
: base(items, dataValueField, dataTextField, ToEnumerable(selectedValue)) {
SelectedValue = selectedValue;
}
二、MVC中DropDownList的使用方式
1、方式一
var users=GetUsers();//获取所有用户
var selectList=new SelectList(users,"Age","Name","24");
ViewBag.list=selectList;
//cshtml使用
@Html.DropDownList("list")
//说明
列表:users
显示的选项:"Age"
选项对应的值:"Name"
默认选中的项为 值为"24"的记录
方式二
//控制器中用:
ViewBag.ProvinceId = Provinces.Select(o => new SelectListItem
{
Selected = o.ProName == "河南省" ? true : false,
Text = o.ProName,
Value = o.ProID.ToString()
});
//前端用:这样配合就会有默认值
@Html.DropDownList("ProvinceId")
方式三
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem { Text = "Kirin", Value = "29" });
items.Add(new SelectListItem { Text = "Jade", Value = "28", Selected = true});
items.Add(new SelectListItem { Text = "Yao", Value = "24"});
ViewBag.list = items;
//在View中使用
@Html.DropDownList("list")
方式四
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem { Text = "Kirin", Value = "29" });
items.Add(new SelectListItem { Text = "Jade", Value = "28"});
items.Add(new SelectListItem { Text = "Yao", Value = "24"});
ViewBag.list = items;
ViewBag.selected = 24;
//View中使用
@Html.DropDownList("selected", ViewBag.list as IEnumerable<SelectListItem>)
//说明
将ViewBag.list绑定为下拉框,然后从ViewBag获取key为selected的项,并将下list中Value值与该项的值相等的SelecteListItem设为默认选中项。
方式五
public enum Unit
{
吨,
堆,
捆
}
var values = Enum.GetValues(typeof(Unit)).Cast<Unit>();
var items = from value in values
select new SelectListItem { Text = value.ToString(), Value = value.ToString()., Selected = value == Unit.堆 };
//view中使用
@Html.DropDownList("MovieType")