当我在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进行分页?任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
您可以使用.Skip
和.Take
方法:
page = page ?? 0;
var filteredAndPaginatedUsers = filteredUsers
.Cast<MembershipUser>()
.Skip((page - 1) * pageSize)
.Take(pageSize)
.ToArray();
可能效率不高,因为我们正在客户端进行分页和过滤,但我担心会员API不允许您同时进行分页和过滤。