使用ASP.Net Membership,获取所有用户

时间:2013-12-17 01:03:19

标签: asp.net-mvc asp.net-membership

我正在尝试使用Membership.GetAllUsers()创建数据库中所有用户的列表。但是,我有一个模型,我使用它来映射用户属性(名字,姓氏,电子邮件等)。

如何将所有用户添加到List<ManageUserViewModel>

我已经累了:

List<ManageUserViewModel> model = Membership.GetAllUsers();

然后

MembershipUserCollection users = Membership.GetAllUsers();
List<ManageUserViewModel> model = new List<ManageUserViewModel>();

foreach (var item in users)
{
    model.Add(item);
}

3 个答案:

答案 0 :(得分:5)

如果你在foreach循环中明确了对象类型,那么你将能够访问你正在寻找的用户对象。

例如:

    var users = Membership.GetAllUsers();

    var userList = new List<MembershipUser>();
    foreach (MembershipUser user in users) 
    {
        userList.Add(user);
    }

答案 1 :(得分:1)

Membership.GetAllUsers()会返回一个MembershipUserCollection,其实际上是MembershipUser的列表,而您需要一个ManageUserViewModel列表,我认为该列表是您应用程序的内部类。

您可以使用LINQ:

var model = Membership.GetAllUsers()
              .Select(m => 
                    new ManageUserViewModel {/* set properties you need here */ }
              )
              .ToList();

相当于:

var users = Membership.GetAllUsers();
var model = new List<ManageUserViewModel>();

foreach (var item in users)
{
    model.Add(new ManageUserViewModel { /* set properties here */});
}

答案 2 :(得分:0)

我遇到了同样的挑战。我用vb而不是c#和.NEt 4.5版使用visual studio 2013。  我从微软网站here获得了所有解决方案 祝你好运