列出AspNetUsers和AspNetRoles

时间:2015-08-23 09:59:26

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

请帮助找出错误,或提出另一种方法来执行以下操作:

我正在尝试将AspNetUsers列表显示在ListView中,然后使用嵌套AspNetRoles显示其ListView列表:

<asp:ListView runat="server" ItemType= "CEODAL.AspNetUser" SelectMethod="GetAspNetUsers" >
<LayoutTemplate>
    <h4>Registered Users</h4>
    <table class="table">
        <tbody>
            <tr runat="server" id="itemPlaceholder"></tr>
        </tbody>
    </table>
</LayoutTemplate>
<ItemTemplate>
    <tr>
        <td><%#: Item.UserName %></td>
        <td>
            <asp:ListView ID="Repeater1" runat="server" ItemType="CEODAL.AspNetRole" SelectMethod="<%#: Item.AspNetRoles.ToList() %>">
                <LayoutTemplate>
                    <h4>Registered Users</h4>
                    <table class="table">
                        <tbody>
                            <tr runat="server" id="itemPlaceholder2"></tr>
                        </tbody>
                    </table>
                </LayoutTemplate>
                <ItemTemplate>
                    <tr>
                        <td>
                            <%#: Item.Name %>
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:ListView>
        </td>
    </tr>
</ItemTemplate>

SelectMethod的{​​{1}}只会返回ListView的列表:

AspNetUsers

没有孩子return _db.AspNetUsers.ToList(); ,一切正常,我将获得用户名列表。

一旦我放了第二个ListView,我将收到以下错误:

  

找不到名为'System.Collections.ObjectModel.ObservableCollection`1 [CEODAL.AspNetRole]'的公共方法,或者在'ASP.pages_manageusers_aspx'类型上有多个具有相同名称的方法。

1 个答案:

答案 0 :(得分:0)

尝试替换属性

SelectMethod="<%#: Item.AspNetRoles.ToList() %>">
使用

在内部ListView中

DataSource="<%# Item.AspNetRoles.ToList() %>">

您收到错误,因为SelectMethod属性具有字符串值(要调用的代码隐藏方法的名称),并且您正在向其传递角色对象的ObservableCollection。很明显,你的代码隐藏类没有方法,其名称是将集合转换为字符串的结果,因此你的错误