使用MembershipUser和Roles填充模型

时间:2012-08-25 13:40:03

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

我创建了一个模型UserModel,为每个用户保留MembershipUserstring[] Roles。在我的控制器中,我试图将IEnumerable<UserModel>返回到视图但遇到问题。

  

无法将源类型“IEnumerable<{user:MembershipUser, roles:string[]}>”转换为目标类型“IEnumerable<UserModel>

我的模特

public class UserModel {
    public MembershipUser user { get; set; }
    public string[] roles { get; set; }
}

在我的控制器中

public ActionResult Users() {
    IEnumerable<UserModel> model = from MembershipUser u in Membership.GetAllUsers()
                select new {user = u, roles = Roles.GetRolesForUser(u.UserName)};

    return View(model);
}

1 个答案:

答案 0 :(得分:4)

当我认为您需要UserModel时,您正在选择匿名类型。

public ActionResult Users() {
    IEnumerable<UserModel> model = from MembershipUser u in Membership.GetAllUsers()
                select new UserModel {user = u, roles = Roles.GetRolesForUser(u.UserName)};

    return View(model);
}