C# 在站点上获取角色名称
我正在尝试在我的站点上显示用户配置文件 例如:“等级:所有者” 但我不知道如何显示排名名称。这是我目前拥有的代码:C# 在站点上获取角色名称,c#,asp.net-mvc,identity,C#,Asp.net Mvc,Identity,我正在尝试在我的站点上显示用户配置文件 例如:“等级:所有者” 但我不知道如何显示排名名称。这是我目前拥有的代码: <p>@if (Model.Roles.Any() != false) { <b>@Model.Roles.Any()</b> } else { <b>Member&l
<p>@if (Model.Roles.Any() != false)
{
<b>@Model.Roles.Any()</b>
}
else
{
<b>Member</b>
}
</p>
那么,我需要什么才能说出我的角色名呢?首先@Model.Roles是一个类型列表。因此,如果您希望看到该集合中的某些内容,则必须对其进行迭代
// this will never generate readable output, it will always print something like this: System.Collections.Generic.List`1[Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole]
<b>@Model.Roles</b>
//这将永远不会生成可读的输出,它将始终打印如下内容:System.Collections.Generic.List`1[Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole]
@模型.角色
第二:类型不包含任何包含角色名的属性。只有roleid和userid。我想你得从别的地方买
试试这段代码
public static class Extension
{
public static string GetRoleList(this List<Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole> roles)
{
string rolelist="";
if(roles.Count==0)
return "None";
foreach (var item in roles)
{
rolelist+=item+",";
}
return rolelist.TrimEnd(',');
}
}
公共静态类扩展
{
公共静态字符串GetRoleList(此列表为角色)
{
字符串rolelist=“”;
if(roles.Count==0)
返回“无”;
foreach(角色中的变量项)
{
角色列表+=项目+“,”;
}
返回rolelist.TrimEnd(',');
}
}
然后在视图中使用它作为
<b>@Model.Roles.GetRoleList()</b>
@Model.Roles.GetRoleList()
如果(Model.Roles.Any()!=null)
始终为真。相反,if(Model.Roles.Any())
IdentityUserRole的结构是什么?@tchelidze我这样做是因为如果它为null,那么它们将获得成员。ussal结构注意,Model.Roles.Any()
不能为null,因为bool
不是可为null的类型。如果Model
或Model.Roles
可以为null,请使用[null传播]()代替Model?.Roles?.Any()
我相信它的角色列表。尝试创建一个方法以返回角色数组的字符串表示形式。当我添加它时,它会显示:“非invocable成员”System.Collections.Generic.List.Count”不能用作方法。抱歉,我的错误。请删除方法说明符()从计数。然后它说:错误1扩展方法必须是staticYes这是真的。类和方法都需要是staticYes,那么我应该怎么做呢?:3
<b>@Model.Roles.GetRoleList()</b>