首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从IEnumerable<string> ViewBag属性中创建下拉列表?

如何从IEnumerable<string> ViewBag属性中创建下拉列表?
EN

Stack Overflow用户
提问于 2016-08-30 19:52:51
回答 3查看 1.3K关注 0票数 0

我有以下看法:

代码语言:javascript
运行
复制
 public ActionResult CreateAlta()
        {
            ViewBag.RolesApp = new SQLRolerecord().GetAllRolesInApp();
            return View();
        }

如何从ViewBag属性RolesApp生成下拉菜单?GetAllRolesInApp()返回一个IEnumerable<string>,我的尝试如下:

代码语言:javascript
运行
复制
<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中不存在。

谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2016-08-30 20:02:27

您可以将字符串列表转换为SelectListItem的列表。

代码语言:javascript
运行
复制
var roles = new SQLRolerecord().GetAllRolesInApp()
                               .Select(f=>new SelectListItem { Value=f, Text = f}).ToList();
ViewBag.Roles= roles ;

现在,在您的视图中,您可以使用DropDownList助手方法。

代码语言:javascript
运行
复制
@Html.DropDownList("Roles")

这将生成一个select元素,将nameid属性值设置为"Roles"。如果您希望它们成为不同的名称,请使用此重载。

代码语言:javascript
运行
复制
@Html.DropDownList("SelectedRole",ViewBag.Roles as List<SelectListItem>)

这将创建一个下拉列表,将名称和id属性值设置为"SelectedRole"

由于我们将SelectListItem对象的值和文本设置为相同的字符串值,所以选择元素选项值和文本将是相同的。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39236011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档