C# 加载MVC5中每个用户的角色列表
我试图在ASP.net MVC应用程序中显示每个用户及其角色的一行 用户及其角色存储在ASP.net成员资格提供程序表中。 使用下面的代码,我可以显示每个用户及其分配的角色,但我的问题是,如果该用户处于多个角色中,那么该用户就会重复 我尝试将UserRole设置为列表,但现在我被卡住了,因为我不知道如何在下面的代码中将角色添加到列表中。你能告诉我一些方向吗 我的viewmodel是:C# 加载MVC5中每个用户的角色列表,c#,razor,sqlmembershipprovider,asp-net-mvc-1,C#,Razor,Sqlmembershipprovider,Asp Net Mvc 1,我试图在ASP.net MVC应用程序中显示每个用户及其角色的一行 用户及其角色存储在ASP.net成员资格提供程序表中。 使用下面的代码,我可以显示每个用户及其分配的角色,但我的问题是,如果该用户处于多个角色中,那么该用户就会重复 我尝试将UserRole设置为列表,但现在我被卡住了,因为我不知道如何在下面的代码中将角色添加到列表中。你能告诉我一些方向吗 我的viewmodel是: public class UserViewModel { public string UserName {
public class UserViewModel
{
public string UserName { get; set; }
public List<String> UserRole { get; set; }
}
var roles = ApplicationRoles.RolesList;
var users = new List<UserViewModel>();
foreach (var role in roles)
{
foreach (var user in Roles.GetUsersInRole(role))
{
users.Add(new UserViewModel {UserName = user, UserRole = role });
}
}
return View(users);
public类UserViewModel
{
公共字符串用户名{get;set;}
公共列表用户角色{get;set;}
}
var roles=ApplicationRoles.RolesList;
var users=新列表();
foreach(角色中的var角色)
{
foreach(角色中的var用户。GetUsersInRole(角色))
{
添加(新的UserViewModel{UserName=user,UserRole=role});
}
}
返回视图(用户);
如果用户具有多个附加角色,如何加载角色以避免重复用户名
我想以以下格式显示它:
=======================
用户角色
John |管理员、批准人
Sam |批准人
=========================反过来做:不要获取具有特定角色的用户,获取用户列表并循环执行,使用
角色.GetRolesForUser
方法获取他们的行列表
var userList = Membership.GetAllUsers();
foreach(MembershipUser user in userList)
{
string[] rolesArray = Roles.GetRolesForUser(user.UserName);
users.Add(new UserViewModel {UserName = user.UserName, UserRole = string.Join(",", rolesArray) });
}
你为什么不喜欢这个
foreach (var user in Roles.GetUsersInRole(role))
{
users.Add(new UserViewModel {UserName = user, NameAndRole = user + "|"+ String.Join(",", UserRole.ToArray() });
}
也可以在viewmodel类中添加属性并使用它
Public String NameAndRole
{
get
{ return name + " | "+ String.Join(",", UserRole.ToArray()) }
}
MSDN:谢谢@Pranay,但是如果我有一个拥有多个角色的用户,会发生什么呢?这仍然会重复用户,我只想显示一次。@snowflakes74-为此,我只使用string.join,在有多个角色时,它将加入并显示奇妙的!!我现在就试试。谢谢@user1666620,我会试试你的逻辑,我的电脑现在正在重新启动。我更喜欢这种方式,但是角色总是空着回来。如何解决这个问题?顺便说一句:我必须在
web.config
中启用rolemager
,你想怎么做?我使用了选定的答案,但我的角色为空,我知道我有具有角色的用户。