【问题标题】:Paging with filtered users in Asp.Net MVC?在 Asp.Net MVC 中过滤用户分页?
【发布时间】:2012-01-27 13:50:54
【问题描述】:

当我在 Asp.Net MVC 中对所有注册用户进行分页时,我使用:

“Membership.GetAllUsers(page ?? 0, pageSize, out totalUsers)”
方法,它工作正常。但我也想按角色过滤用户。所以我使用下面的代码按角色过滤用户。而且效果很好。

                MembershipUserCollection allUsers = Membership.GetAllUsers();
                MembershipUserCollection filteredUsers = new MembershipUserCollection();
                string[] usersInRole = Roles.GetUsersInRole(roleName);
                foreach (MembershipUser user in allUsers)
                {
                    foreach (string userInRole in usersInRole)
                    {
                        if (userInRole == user.UserName)
                        {
                            filteredUsers.Add(user);
                        }
                    }
                }

我的问题是,如何使用过滤用户进行分页?谁能帮帮我?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 razor


    【解决方案1】:

    您可以使用.Skip.Take 方法:

    page = page ?? 0;
    var filteredAndPaginatedUsers = filteredUsers
        .Cast<MembershipUser>()
        .Skip((page - 1) * pageSize)
        .Take(pageSize)
        .ToArray();
    

    可能效率不高,因为我们在客户端进行分页和过滤,但我担心 Membership API 不允许您同时进行分页和过滤。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 2015-09-12
      • 2019-07-28
      • 1970-01-01
      • 2017-07-15
      • 2021-03-14
      相关资源
      最近更新 更多