ASP.NET Identity 2.0在下拉列表中获取RoleNames

时间:2014-08-12 14:34:56

标签: c# asp.net entity-framework asp.net-identity

我想在下拉列表中使用角色名称,但我的代码改为: System.Data.Entity.DynamicProxies.IdentityRole_9242DF3B1E41249C78E71E10BE06DC7180880D3BD461D49C4D7FA49EA1C455CA

        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>());
        var roles = roleManager.Roles.ToList();

        DropDownList1.DataSource = roles;
        DropDownList1.DataBind();

我觉得这是一个非常简单的错误,我看不到。

感谢Jeremy Cook提供合适的软件。

新代码

            var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>());
        var roles = roleManager.Roles.ToList();
        DropDownList1.DataTextField = "Name";
        DropDownList1.DataValueField = "Id";
        DropDownList1.DataSource = roles;
        DropDownList1.DataBind();

1 个答案:

答案 0 :(得分:2)

不幸的是,IdentityRole不会覆盖ToString(),因此您会看到类名称。 See the source here.

但是,将DataTextField属性设置为&#34; Name&#34;应该回避你的麻烦。 (您可能还想将DataValueField属性设置为&#34; Id&#34 ;.)