2013-12-17 36 views
2

我试图使用Membership.GetAllUsers()创建数据库中所有用户的列表。然而,我有一个模型,我用它来映射出用户属性(名字,姓氏,电子邮件等)。使用ASP.Net成员资格,获取所有用户

如何将所有用户添加到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); 
} 

回答

4

如果你有明确的foreach循环的对象类型,你就可以访问您正在查找的用户对象。

例如:

var users = Membership.GetAllUsers(); 

    var userList = new List<MembershipUser>(); 
    foreach (MembershipUser user in users) 
    { 
     userList.Add(user); 
    } 
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 */}); 
} 
+0

当我尝试从项目分配属性到模型,我也不能因为项目没有属性(名字,姓氏等) –

+0

该项目具有[Membership用户]的所有属性(http://msdn.microsoft.com/zh-cn/library/system。 web.security.membershipuser(v = vs.110).aspx),其中不包含配置文件。这是来自会员的独立组件,您使用了什么? – Sklivvz

+0

我试图创建一种方法来管理我的应用程序中的用户。锁定他们,重置他们的密码,更新他们的角色等等。但是,现在我只是想让所有用户将他们显示到网格中。 –

0

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