2010-03-26 42 views
3

我想知道是否可以授權視圖內部的視圖的各個部分。在MVC中授權視圖的各個部分

例如,我知道如何授權整個控制器的這種方法

<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 

但是我還想做的是有它,所以如果管理員登錄,他們可以看到我的導航附加鏈接。

東西沿着

行顯然是行不通的,但它給的什麼,我試圖完成一個想法。

任何想法?

回答

4

使用這樣的事情:

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

Opps,對不起,這是C#,但想法會是一樣的... – Paul 2010-03-26 18:30:43

+0

完美,謝謝! – 2010-03-26 18:43:47

+1

您可能想用這種方法考慮長期可維護性。我寧願看到模型的視圖有一個標誌CanSeeAdminSecrets並使用Roles.IsUserInRole方法從控制器設置該標誌。 管理員的定義可能會在系統中稍後發生變化,並且具有管理員在控制器中的內容的邏輯更有意義。認爲這只是偏好。 – Jab 2010-03-26 20:13:51

0

這是如果發送的最佳實踐的東西到新的HTML輔助擴展方法。

+0

請在此處添加一些參考信息。 – jwize 2014-06-13 08:31:48