如何在mvc中创建下拉列表

时间:2015-07-29 09:01:45

标签: model-view-controller

这是我的控制器

[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;

1 个答案:

答案 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