如果用户处于管理员角色,则显示管理ActionLink

时间:2013-03-12 16:34:27

标签: asp.net asp.net-mvc visual-studio-2010

如果用户的角色是“管理员”,我想在我的主页上显示Admin ActionLink。我已设法正确配置角色,但我不确定如何做到这一点。

到目前为止,我已将以下代码实现到我的HomeController中:

        Function Admin() As ActionResult
        If Roles.IsUserInRole("Admin") Then
            Return View("Admin")
        Else
            Return View()
        End If
        End Function 

然后我在我的Site.Master中实现了以下ActionLink:

<li><%: Html.ActionLink("Admin", "Admin", New With {.Controller = "Home"})%></li>

我知道这不正确,但这不是我以前做过的事情所以我不太确定如何正确实施它。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用razor在视图中编写此代码,如下所示:

剃刀

@If User.IsInRole("Admin") Then
   <li>@Html.ActionLink("Admin", "Admin", New With {.Controller = "Home"})</li>
End if

ASPX

<% If User.IsInRole("Admin") Then %>
   <li><%: Html.ActionLink("Admin", "Admin", New With {.Controller = "Home"})%></li> 
<% End if %>

答案 1 :(得分:0)

我不熟悉VB.NET但您可以通过编写自定义帮助函数来完成此操作:

 public static MvcHtmlString If(this MvcHtmlString value, bool evaluation)
    {
         return evaluation ? value : MvcHtmlString.Empty;
    }

所以你可以使用它:

 @Html.ActionLink("Admin", "Admin").If(User.IsInRole("Administrator"))