我想在DropDown中将VieBage项目作为选择列表,这是我的ViewModel内容
public List<SelectListItem> SelectedItemForRole { get; set; }
public string SelectedValue { get; set; }
public static RegisterViewModel GetRole()
{
var model = new RegisterViewModel { SelectedItemForRole = new List<SelectListItem>() };
model.SelectedItemForRole.Add(new SelectListItem() { Text = "Administrator", Value = "1" });
model.SelectedItemForRole.Add(new SelectListItem() { Text = "Operator", Value = "2" });
return model;
}
这是我的行动内容:
ViewBag.RoleList = RegisterViewModel.GetRole();
我在View中所做的就是这样:
<div>
@Html.LabelFor(register => register.Role)
@Html.DropDownListFor(register => register.SelectedValue, new SelectList(ViewBag.RoleList, "Value", "Text"))
</div>
但它不起作用!
答案 0 :(得分:1)
您需要做的就是将ViewBag值转换为SelectList。所以在你的情况下:
@Html.DropDownListFor(register => register.SelectedValue, (SelectList)ViewBag.RoleList)
然而,当我查看你的代码时,我看到你的ViewBag实例是RegisterViewModel类型,它有一个名为SelectedItemForRole的属性,它包含你的选择列表。那么我认为你需要的是:
@Html.DropDownListFor(register => register.SelectedValue, ((RegisterViewModel)ViewBag.RoleList).SelectedItemForRole)
基本上,您将ViewBag转换为RegisterViewModel,然后将SelectItemForRole用于SelectList。
答案 1 :(得分:-1)
CType(ViewBag.Especialidades, IEnumerable(Of SelectListItem))