MVC Membership获取角色的selectList

时间:2015-11-25 15:58:54

标签: c# asp.net-mvc razor asp.net-membership

我刚刚将整个应用程序切换到使用我的主管编写的LDAP的MVC成员资格。登录和验证工作。但是,现在我需要更改应用程序中的selectLists以在成员资格表中拉取角色,同时还将用户拉入技术人员角色。我在拉动所有角色时的第一次尝试包括这次尝试:

在我的控制器中:

ViewBag.TypeId = new SelectList(Roles.GetAllRoles(), "Id", "Name");

然后我的剃刀视图中的代码:

<div class="form-group">
    @Html.Label("Type", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-3">
        @Html.DropDownList("TypeId", null, "Select Type", htmlAttributes: new { @class = "form-control" })
        @Html.ValidationMessageFor(model => model.TypeId, "", new { @class = "text-danger" })
    </div>
</div>

我发现了这个,但我看不到如何保存列表中的ID,或者如何将其转换为下拉列表而不是ListBox:

ASP.net MVC SelectList filed with all roles

以下是我在视图中的下拉列表中收到的错误:

  

类型&#39; System.Web.HttpException&#39;的例外情况发生在System.Web.dll中但未在用户代码中处理

其他信息:DataBinding:&#39; System.String&#39;不包含名称为&#39; RoleId&#39;。

的媒体资源

以下是表格:

enter image description here

1 个答案:

答案 0 :(得分:0)

ViewBag.TypeId = new SelectList(Roles.GetAllRoles(), "RoleId", "RoleName");

您可以获得SelectList之类的角色。

@Html.DropDownListFor(m => m.TypeId, (SelectList)ViewBag.TypeId, "Select Type", new  { @class = "form-control" })