4

私はユーザーと呼ばれる役割のためのいくつかのメニューを持っているマスターページを持っています、そして他のメニューは管理者の役割のためです、それで私が喜んでいるのはユーザーの役割をチェックしていくつかのdivタグを表示しそして他のものを非表示にすることですユーザーの役割の基礎。

として、layout.cshtmlのコントローラーがないので、レイアウトビューのviewModelを設定する方法現在のユーザーの役割を確認できます

layout.cshtmlでロールベースのチェックを行う方法。

私はフォローインの質問をしましたが、今までに答えられていません

ロールに基づいてコントロールを表示または非表示にする方法-ASP.NETMVC4 Razor

だから、可能な解決策と、layout.cshtmlで役割ベースのチェックを適用するのに最適な方法を教えてください

4

2 に答える 2

11

User.IsInRole次の方法を使用できます。

@if (User.IsInRole("admin"))
{
    <li>Only the admin can see this menu item</li>
}
于 2013-03-25T07:09:40.150 に答える
3

次のコードを使用して、役割ベースのチェックを行うことができます

@if(Request.IsAuthenticated)

{
    if(User.IsInRole("Admin")
    {
     <Ul Class="SubMenuItem">

     <li> this menu item is for Admin role</li>
     </Ul>
    }
     if(User.IsInRole("User")
    {
     <Ul Class="SubMenuItem">

     <li> this menu item is for User role</li>
     </Ul>
    }
}

不明なユーザーの場合

else
{
 <Ul Class="SubMenuItem">

     <li> this menu item is for Unknown user</li>
     </Ul>
}
于 2013-03-25T07:43:27.027 に答える