在Asp.Net MVC中过滤用户?

时间:2012-01-27 13:50:54

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

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

" Membership.GetAllUsers(页面?? 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);
                        }
                    }
                }

我的问题是,如何使用filteredUsers进行分页?任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

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

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

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