授权MVC中的视图部分

时间:2010-03-26 18:24:40

标签: asp.net asp.net-mvc authorization forms-authentication

我想知道是否可以在视图中授权部分视图。

例如,我了解如何在此方法中授权整个控制器

<HandleError()> _
Public Class HomeController
  Inherits System.Web.Mvc.Controller

  Function Index()
    Return View()
  End Function

  <Authorize(Roles:="Administrators")> _
  Function AdministratorSecrets()
    Return View()
  End Function

End Class

但我想做的就是拥有它,如果管理员登录,他们可以在我的导航中看到其他链接。

的内容
            <ul id="menu">              
                <li><%= Html.ActionLink("Home", "Index", "Home")%></li>
                <li><%= Html.ActionLink("About", "About", "Home")%></li>
                <Authorize(Roles:="Administrators")> _
                <li><%= Html.ActionLink("Admin", "Admin", "Home")%></li>
            </ul>

显然这不起作用,但它会让我知道我想要完成的任务。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

使用类似的东西:

<% if(Roles.IsUserInRole("Administrator")){ %>
<span>HTML Code</span>
<% } %>

答案 1 :(得分:0)

将if内容发送到新的html帮助扩展方法是最佳做法。