如果用户不在Role中,请忽略@ Html.Action()

时间:2013-06-26 06:31:32

标签: asp.net-mvc attributes

在我的查看 i渲染菜单@Html.Action("RenderMenu", "Admin")@Html.Action("RenderMenu", "Manager")中 行动地点:

    [Authorize(Roles = "Admin")]
    public ActionResult RenderMenu()
    {
        return View();
    }

如果用户不在管理员

  

@Html.Action("RenderMenu", "Admin")只是忽略。

我该怎么办? 现在,我有无限的登录窗口。

4 个答案:

答案 0 :(得分:0)

在剃刀视图中创建if以检查用户是否处于需要的角色。您可以使用(User.IsInRole(“Adm inistrators”))

这里有类似的讨论asp.net MVC3 razor: display actionlink based on user role

答案 1 :(得分:0)

您可以使用:

@if (Page.User.IsInRole("Admin")) {   
    @Html.Action("RenderMenu", "Admin")
}

答案 2 :(得分:0)

我有一个答案。你可以试试......

@{
    if(User.IsInRole("Admin"))
       {
          @Html.Action("RenderMenu", "Admin")
          @Html.Action("RenderMenu", "Manager")
       }
   else
      {
@Html.Action("RenderMenu", "Manager")

     }
}

答案 3 :(得分:0)

看我的回答 Asp.net MVC3: is really based on roles @Html.Action()

你可以使用:

@Html.ActionBaseRole("RenderMenu", "Admin")