日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Asp.net MVC3.0 基于不同的角色显示不同的菜单

發布時間:2023/12/2 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.net MVC3.0 基于不同的角色显示不同的菜单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面提到過用Asp.net MVC3.0正在做一個問答系統性質的論壇。前期把菜單全部顯示以方便測試模塊功能。現在正在完善,加上角色模塊,然后不同的角色登陸系統會看到不同的菜單欄,還有就是游客(未登錄用戶)看到的菜單欄。網上也搜到了幾篇關于動態顯示菜單的文章,不是很喜歡,動態顯示菜單,我感覺不如靜態的爽快,而且動態的從數據庫中取出菜單項,本身就是耗時間的事情,加上寫在數據庫中還需要維護,而且菜單也沒那么多,都是一定的,也不需要動態擴展,決定用靜態的。

? ? ?由于后臺都是自定義的AuthorizeAttribute和Role,所以不能用Asp.net MVC3.0內置的User.IsInRole()和Roles.IsUserInRole()來判斷登陸用戶的角色信息。所以只能自己添加了。

? ? ?所做項目的菜單是在Layout中顯示的,所以先在Layout中稍作修改,這是一個小例子,將

<div id="menucontainer"><ul id="menu"><li>@Html.ActionLink("Home", "Index", "Home")</li><li>@Html.ActionLink("About", "About", "Home")</li></ul> </div>

改為

<div id="menucontainer"><ul id="menu">@{Html.RenderAction("你的菜單Action名字", "你的菜單Controller名字");}</ul> </div>

其中@Html.RenderAction是通過Controller中的Action來調用用戶控件,將Action對應的View當做Partial部分顯示在調用處。

然后建立對應的菜單的Controller和Action。(你也可以先建立菜單Controller和Action)

分別命名為TestMenuController和Menu。

using System.Collections.Generic; using System.Web.Mvc;namespace test.Controllers {public class TestMenuController : Controller{//// GET: /TestMenu/public ActionResult Menu(){List<Role> _testroles = new List<Role>();/*根據User.Instance.Name或者你登陸的時候將你的用戶信息放入Session中,取出,然后根據用戶, 獲取你自己定義的role信息*///將角色名稱放入List<string>中List<string> roles = new List<string>();return PartialView(roles);}} }

建立對應的Menu.cshtml,選中PartialView。

在Menu.cshtml中加入如下代碼

@model IEnumerable<string> @{this.Layout = null; } @if(Model.Count()>0&&Model.Contains("角色名稱")){你想要顯示的菜單; } ....................此處省略,大體代碼如此,自己寫。

差不多就這樣子了。如果要求菜單動態擴展的話,那也很容易改。同樣的道理。

轉載于:https://www.cnblogs.com/tianzibobo/archive/2013/01/07/role_menu.html

總結

以上是生活随笔為你收集整理的Asp.net MVC3.0 基于不同的角色显示不同的菜单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。