C# MVC成员获取角色列表

C# MVC成员获取角色列表,c#,asp.net-mvc,razor,asp.net-membership,C#,Asp.net Mvc,Razor,Asp.net Membership,我刚刚将整个应用程序切换到使用MVC成员身份,使用我的主管编写的LDAP。登录和验证工作。但是,现在我需要更改应用程序中的SelectList,以在成员资格表中提取角色,并在技师角色中提取用户。我第一次尝试拉所有角色包括: 在我的控制器中: ViewBag.TypeId = new SelectList(Roles.GetAllRoles(), "Id", "Name"); 然后我的razor视图中的代码: <div class="form-group"> @Html.La

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

在我的控制器中:

ViewBag.TypeId = new SelectList(Roles.GetAllRoles(), "Id", "Name");
然后我的razor视图中的代码:

<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,或者如何将其转换为dropdownlist而不是ListBox:

以下是我在视图中的dropdownlist上收到的错误:

System.Web.dll中发生“System.Web.HttpException”类型的异常,但未在用户代码中处理

其他信息:数据绑定:“System.String”不包含名为“RoleId”的属性

这是表格:

您可以获得如下角色的SelectList

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

谢谢你的帮助,阿齐姆。不幸的是,我在该代码中遇到此错误:System.Web.HttpException类型的异常发生在System.Web.dll中,但未在用户代码中处理其他信息:数据绑定:“System.String”不包含名为“RoleId”的属性。我很确定这与MVC成员资格有关。你的选择列表中没有RoleId。查看更新的答案。很抱歉,我最初在选择列表中有Id时也收到了此错误,因此我尝试替换Id RoleId,因为这是asp成员资格表中字段的名称。所以我再试了一次,这就是我收到的。好的,验证数据库中的角色表是否有属性Id和Nameno,它们是否有RoleId和RoleName-这就是我更改它的原因。我第一次尝试使用Id和Name,因为这是我在web上找到的用于处理成员资格的代码,我认为这可能是处理MVC成员资格的标准方法。
@Html.DropDownListFor(m => m.TypeId, (SelectList)ViewBag.TypeId, "Select Type", new  { @class = "form-control" })