Asp.net mvc 3 MVC3-在viewbag.message中显示角色名称

Asp.net mvc 3 MVC3-在viewbag.message中显示角色名称,asp.net-mvc-3,viewbag,Asp.net Mvc 3,Viewbag,在ViewBag.Message中,我想在消息中显示用户的角色。如果用户是“客户端”角色。我想添加到现有的viewbag中,使其显示在主页Hello User123上!你是客户 您可以使用成员资格和角色提供程序获取分配给用户的角色集合 var user = Membership.GetUser(); //Gets currently logged in user var roles = Roles.GetRolesForUser(user.UserName); //Gets array of r

在ViewBag.Message中,我想在消息中显示用户的角色。如果用户是“客户端”角色。我想添加到现有的viewbag中,使其显示在主页Hello User123上!你是客户

您可以使用成员资格和角色提供程序获取分配给用户的角色集合

var user = Membership.GetUser(); //Gets currently logged in user
var roles = Roles.GetRolesForUser(user.UserName); //Gets array of role names assigned to user
角色将是字符串数组,因为用户可以被分配到多个角色。如果只想使用第一个角色,可以执行以下操作:

if( roles.Length > 0 )
{
    ViewBag.Message = string.Format("Hello Bob, you are a {0}", roles[0] ); 
}

在您的视图中,您可以访问ViewBag的Message属性来显示您的消息。

这很好。您有问题吗?是的,如何在ViewBag中显示当前用户的角色名?您在ViewBag中不显示任何内容。ViewBag只是一个包含键/对值的字典。我对用户名和姓氏做了类似的操作,在消息中回吐用户的名字和姓氏。我在viewbag中完成了这一点。我希望对角色的用户也这样做。我知道这是可能的,但不知道具体怎么做。我知道它将类似于这样:var profile=profile.GetProfile(User.Identity.Name);ViewBag.Message=“你好”+profile.FirstName+”“+profile.LastName+”;