我有以下看法:
 public ActionResult CreateAlta()
        {
            ViewBag.RolesApp = new SQLRolerecord().GetAllRolesInApp();
            return View();
        }如何从ViewBag属性RolesApp生成下拉菜单?GetAllRolesInApp()返回一个IEnumerable<string>,我的尝试如下:
<div class="form-group">
     <label class="col-sm-2 control-label">Role: </label>
          <div class="col-sm-4">
            @Html.DropDownListFor("iroleeid", ViewBag.RolesApp, "--Select Role of User--");
          </div>
</div>但是,这会生成一个错误,说明DropDownListFor在HtmlHelper中不存在。
谢谢。
发布于 2016-08-30 20:02:27
您可以将字符串列表转换为SelectListItem的列表。
var roles = new SQLRolerecord().GetAllRolesInApp()
                               .Select(f=>new SelectListItem { Value=f, Text = f}).ToList();
ViewBag.Roles= roles ;现在,在您的视图中,您可以使用DropDownList助手方法。
@Html.DropDownList("Roles")这将生成一个select元素,将name和id属性值设置为"Roles"。如果您希望它们成为不同的名称,请使用此重载。
@Html.DropDownList("SelectedRole",ViewBag.Roles as List<SelectListItem>)这将创建一个下拉列表,将名称和id属性值设置为"SelectedRole"。
由于我们将SelectListItem对象的值和文本设置为相同的字符串值,所以选择元素选项值和文本将是相同的。
https://stackoverflow.com/questions/39236011
复制相似问题