2
我需要在Site.Master中編寫一個菜單,其中某些菜單項必須可見或不可見,具體取決於當前用戶角色。我怎樣才能從頁面檢查? 通常只會將邏輯寫入控制器,但Site.Master沒有(至少在我的項目中!)。我會很感激任何指針。如何檢查Site.Master頁面上的當前用戶角色?
我需要在Site.Master中編寫一個菜單,其中某些菜單項必須可見或不可見,具體取決於當前用戶角色。我怎樣才能從頁面檢查? 通常只會將邏輯寫入控制器,但Site.Master沒有(至少在我的項目中!)。我會很感激任何指針。如何檢查Site.Master頁面上的當前用戶角色?
使用HttpContext.Current.User。
從視圖/部分視圖/母版頁中始終可以看到它。
例如,對於一個給定的角色顯示不同的HTML,比方說,MyRole,你就簡單的寫:
<% if(HttpContext.Current.User.IsInRole("MyRole")) { %>
// tags for MyRole
<% } else { %>
// tags for other users
<%} %>
這很好,因爲它是「顯示邏輯」,其所屬的視圖(或主頁面),而不是屬於控制器中的「應用程序邏輯」。
請注意,視圖只是模板。你可以編寫代碼而不用搞亂整潔的MVC模式,只要它是顯示邏輯。
視圖或母版頁不「擁有控制器」。它們只是控制器可以找到並使用的模板。
好的,這個作品很棒,謝謝! – pklosinski 2010-10-15 11:43:35