这是我的控制器
[AllowAnonymous]
public ActionResult Register()
{
ViewBag.Name = new SelectList(context.Roles.ToList(), "Name", "Name");
return View();
}
这是我的创建视图部分
<div class="form-group">
@Html.Label("Select Your User Type", new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@*@Html.DropDownList("Name")*@
@Html.DropDownList("Name",(SelectList)ViewBag.Name )
</div>
</div>
我可以通过下拉加载表单。但是当我尝试保存记录时,它会出现错误&#34; ViewData项目中包含密钥&#39; Name&#39;属于&#39; System.String&#39;但必须是类型&#39; IEnumerable&#39;。&#34;
答案 0 :(得分:1)
这样做:
[AllowAnonymous]
public ActionResult Register()
{
var items = new List<SelectListItem>();
foreach (var role in context.Roles)
{
items.Add(new SelectListItem {Text = role.Name, Value = role.Value});
}
var result = new SelectList(items);
ViewBag.Name = result;
return View();
}
查看强>
@Html.DropDownList("Name",ViewBag.Name)
但我可以建议您避免ViewBag
并使用强类型模型。
看here