获取所选用户的描述角色

时间:2017-12-12 16:58:05

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

我是MVC的新手。我有一个带有ViewModel的详细信息视图,用于显示所选用户的数据。我想列出用户拥有的角色,我还想要一个角色描述和角色的ID。

我可以通过以下方式获取所选ApplicationUser的角色:

model.UserRoles = await _userManager.GetRolesAsync(model.AppUser);

我不知道如何获取每个角色的描述并将其显示在我的详细信息视图中。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我明白了。我希望这有助于某人。我不知道这是最好还是最有效的方式,但它确实有效。我获得了以下用户角色:



//Get the User Roles
IList<String> userRoles = await _userManager.GetRolesAsync(model.AppUser);
&#13;
&#13;
&#13;

我用它来获取角色描述:

&#13;
&#13;
List<String> roleDescription = new List<String>();

if (userRoles.Count > 0)
{
    foreach (string r in userRoles)
    {
        //Get the Description for the assigned Role
        var desc = _roleManager.Roles.Where(n => n.Name == r).Select(d => d.Description).Single();
        roleDescription.Add(desc.ToString());
    }

    //Using Tuple to combine text in [Role] | [Description] format in View
    var roleWithDesc = new List<Tuple<string, string>>();

    for (int i = 0; i < userRoles.Count; i++)
    {    
         roleWithDesc.Add(Tuple.Create(userRoles[i].ToString(), roleDescription[i].ToString()));
    }

    model.UserRoles = roleWithDesc;
}
&#13;
&#13;
&#13;

以下是我的ViewModel中的代码:

&#13;
&#13;
public ApplicationUser AppUser { get; set; }

public Employee Employee { get; set; }

[Display(Name = "User Roles")]
public List<Tuple<string, string>> UserRoles { get; set; }

[Display(Name = "Available Roles")]
public List<Tuple<string, string>> AllRoles { get; set; }
&#13;
&#13;
&#13;