如何在选择列表中设置所选值。 例如,假设我正在显示一个现有的客户端,并且在表单上有一个“性别”的下拉列表,我希望选择“男性”(如果那个保存在数据库中的那个)我该怎么做? / p>
当我正在构建我的模型时,我正在做类似
的事情public ActionResult Edit(string id)
{
var client= _clientService.FindById(id);
var model = new ViewModels.Client()
{
GenderId= client.GenderId,
GenderList= CreateGenderList(GenderId)
};
}
private IEnumerable<SelectListItem> CreateGenderList(int gId)
{
var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList))
.Cast<DomainObjects.Client.GenderList>()
.Select(v => new SelectListItem { Text = v.ToString(), Value = ((int)v).ToString() });
//Need to set the selected value, how?
return list.ToList();
}
先谢谢你。
答案 0 :(得分:0)
您应该使用额外的SelectListItem.Selected
属性,并将其设置为true。例如:
var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList))
.Cast<DomainObjects.Client.GenderList>()
.Select(v => new SelectListItem {
Text = v.ToString(),
Value = ((int)v).ToString()});
var maleGenderItem = list.Single(x => x.Text == "Male");
maleGenderItem.Selected = true;
答案 1 :(得分:0)
这样做了
var list = Enum.GetValues(typeof(DomainObjects.Client.GenderList))
.Cast<DomainObjects.Client.GenderList>()
.Select(v => new SelectListItem { Text = v.ToString(), Value = ((int)v).ToString(), Selected = gName.ToString() == ((int)v).ToString() });
return list.ToList();