2010-10-15 71 views
2

我需要在Site.Master中編寫一個菜單,其中某些菜單項必須可見或不可見,具體取決於當前用戶角色。我怎樣才能從頁面檢查? 通常只會將邏輯寫入控制器,但Site.Master沒有(至少在我的項目中!)。我會很感激任何指針。如何檢查Site.Master頁面上的當前用戶角色?

回答

5

使用HttpContext.Current.User。

從視圖/部分視圖/母版頁中始終可以看到它。

例如,對於一個給定的角色顯示不同的HTML,比方說,MyRole,你就簡單的寫:

<% if(HttpContext.Current.User.IsInRole("MyRole")) { %> 

    // tags for MyRole 

<% } else { %> 

    // tags for other users 

<%} %> 

這很好,因爲它是「顯示邏輯」,其所屬的視圖(或主頁面),而不是屬於控制器中的「應用程序邏輯」。

請注意,視圖只是模板。你可以編寫代碼而不用搞亂整潔的MVC模式,只要它是顯示邏輯。

視圖或母版頁不「擁有控制器」。它們只是控制器可以找到並使用的模板。

+1

好的,這個作品很棒,謝謝! – pklosinski 2010-10-15 11:43:35

相關問題