0

ユーザーの役割が「管理者」の場合、ホームページに管理者アクションリンクを表示したい。役割を正しく構成することができましたが、その方法がわかりません。

これまで、HomeControllerに次のコードを実装しました。

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

次に、次のActionLinkをSite.Masterに実装しました。

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

私はこれが正しくないことを知っていますが、それは私が以前にしたことではないので、それを正しく実装する方法がよくわかりません。

助けてくれてありがとう。

4

2 に答える 2

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 %>
于 2013-03-12T16:49:57.063 に答える
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"))
于 2013-03-12T16:50:56.683 に答える