ASP.NET MVC - 不同角色的菜单

Jac*_*zek 8 asp.net-mvc-3

我正在编写我的第一个MVC 3应用程序(在ASP.NET中),我不知道如何(应该)显示不同用户的菜单.

我的应用程序创建为MVC3 Web应用程序,菜单如下所示:

<div id="menucontainer">
            <ul id="menu">
                <li>@Html.ActionLink("Home", "Index", "Home")</li>
                <li>@Html.ActionLink("Info", "Info", "Home")</li>
            </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我创建了两种类型的角色:用户和管理员.现在,我想为用户(项目,个人资料)和管理员(管理项目,管理帐户,管理新闻)显示另一个链接.

我应该怎么做?

Jac*_*zek 7

我找到了解决方案

<div id="menucontainer">
            <ul id="menu">
                <li>@Html.ActionLink("Home", "Index", "Home")</li>
                <li>@Html.ActionLink("Info", "Info", "Home")</li>
                @if ( Request.IsAuthenticated && HttpContext.Current.User.IsInRole
( "user" ) ) {
                     <li>Projects link</li>
                     <li>Profile link</li>
                }
                @if ( Request.IsAuthenticated && HttpContext.Current.User.IsInRole
( "admin" ) ) {
                     <li>Manage Projects link</li>
                     <li>Manage Accounts link</li>
                }
            </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 你不应该在你的视图中加入那么多的条件逻辑.如果你坚持这样做,你应该把这两个检查放到你的行动中,并为你的ViewModel添加简单的布尔属性. (9认同)