主頁 > .NET開發 > ABP入門教程13 - 更新選單

ABP入門教程13 - 更新選單

2020-09-23 08:54:34 .NET開發

點這里進入ABP入門教程目錄 

選單更新

在展示層(即JD.CRS.Web.Mvc)的Startup下打開CRSNavigationProvider.cs //用以存放選單相關資訊

修改如下

  1 using Abp.Application.Navigation;
  2 using Abp.Localization;
  3 using JD.CRS.Authorization;
  4 
  5 namespace JD.CRS.Web.Startup
  6 {
  7     /// <summary>
  8     /// This class defines menus for the application.
  9     /// </summary>
 10     public class CRSNavigationProvider : NavigationProvider
 11     {
 12         public override void SetNavigation(INavigationProviderContext context)
 13         {
 14             context.Manager.MainMenu
 15                 .AddItem( //一級選單 - 首頁
 16                     new MenuItemDefinition(
 17                         PageNames.Home,
 18                         L("HomePage"),
 19                         url: "",
 20                         icon: "home",
 21                         requiredPermissionName: PermissionNames.Pages_Home
 22                     )
 23                 )
 24                 .AddItem( //一級選單 - 基礎資料
 25                     new MenuItemDefinition(
 26                         "Data",
 27                         L("Data"),
 28                         icon: "storage"
 29                     ).AddItem( //二級選單 - 辦公室設定
 30                         new MenuItemDefinition(
 31                             PageNames.Office,
 32                             L("Office"),
 33                             url: "Office",
 34                             requiredPermissionName: PermissionNames.Pages_Office
 35                         )
 36                     ).AddItem( //二級選單 - 院系設定
 37                         new MenuItemDefinition(
 38                             PageNames.Department,
 39                             L("Department"),
 40                             url: "Department",
 41                             requiredPermissionName: PermissionNames.Pages_Department
 42                         )
 43                     ).AddItem( //二級選單 - 課程設定
 44                         new MenuItemDefinition(
 45                             PageNames.Course,
 46                             L("Course"),
 47                             url: "Course",
 48                             requiredPermissionName: PermissionNames.Pages_Course
 49                         )
 50                     ).AddItem( //二級選單 - 教職員設定
 51                         new MenuItemDefinition(
 52                             PageNames.Instructor,
 53                             L("Instructor"),
 54                             url: "Instructor",
 55                             requiredPermissionName: PermissionNames.Pages_Instructor
 56                         )
 57                     ).AddItem( //二級選單 - 學生設定
 58                         new MenuItemDefinition(
 59                             PageNames.Student,
 60                             L("Student"),
 61                             url: "Student",
 62                             requiredPermissionName: PermissionNames.Pages_Student
 63                         )
 64                     )
 65                 )
 66                 .AddItem( //一級選單 - 綜合服務
 67                     new MenuItemDefinition(
 68                         "Service",
 69                         L("Service"),
 70                         icon: "business"
 71                     ).AddItem( //二級選單 - 教職員辦公室設定
 72                         new MenuItemDefinition(
 73                             PageNames.OfficeInstructor,
 74                             L("OfficeInstructor"),
 75                             url: "OfficeInstructor"
 76                         )
 77                     ).AddItem( //二級選單 - 院系主任設定
 78                         new MenuItemDefinition(
 79                             PageNames.DepartmentInstructor,
 80                             L("DepartmentInstructor"),
 81                             url: "DepartmentInstructor"
 82                         )
 83                     ).AddItem( //二級選單 - 院系課程設定
 84                         new MenuItemDefinition(
 85                             PageNames.DepartmentCourse,
 86                             L("DepartmentCourse"),
 87                             url: "DepartmentCourse"
 88                         )
 89                     ).AddItem( //二級選單 - 教職員課程設定
 90                         new MenuItemDefinition(
 91                             PageNames.InstructorCourse,
 92                             L("InstructorCourse"),
 93                             url: "InstructorCourse"
 94                         )
 95                     ).AddItem( //二級選單 - 學生課程設定
 96                         new MenuItemDefinition(
 97                             PageNames.StudentCourse,
 98                             L("StudentCourse"),
 99                             url: "StudentCourse"
100                         )
101                     )
102                 )
103                 .AddItem( //一級選單 - 管理報表
104                     new MenuItemDefinition(
105                         "Report",
106                         L("Report"),
107                         icon: "poll"
108                     ).AddItem( //二級選單 - 辦公室報表
109                         new MenuItemDefinition(
110                             PageNames.OfficeReport,
111                             L("OfficeReport"),
112                             url: "OfficeReport",
113                             requiredPermissionName: PermissionNames.Pages_OfficeReport
114                         )
115                     ).AddItem( //二級選單 - 院系報表
116                         new MenuItemDefinition(
117                             PageNames.DepartmentReport,
118                             L("DepartmentReport"),
119                             url: "DepartmentReport",
120                             requiredPermissionName: PermissionNames.Pages_DepartmentReport
121                         )
122                     ).AddItem( //二級選單 - 課程報表
123                         new MenuItemDefinition(
124                             PageNames.CourseReport,
125                             L("CourseReport"),
126                             url: "CourseReport",
127                             requiredPermissionName: PermissionNames.Pages_CourseReport
128                         )
129                     ).AddItem( //二級選單 - 教職員報表
130                         new MenuItemDefinition(
131                             PageNames.InstructorReport,
132                             L("InstructorReport"),
133                             url: "InstructorReport",
134                             requiredPermissionName: PermissionNames.Pages_InstructorReport
135                         )
136                     ).AddItem( //二級選單 - 學生報表
137                         new MenuItemDefinition(
138                             PageNames.StudentReport,
139                             L("StudentReport"),
140                             url: "StudentReport",
141                             requiredPermissionName: PermissionNames.Pages_StudentReport
142                         )
143                     )
144                 )
145                 .AddItem( //一級選單 - 系統設定
146                     new MenuItemDefinition(
147                         "Setting",
148                         L("Setting"),
149                         icon: "settings"
150                     ).AddItem( //二級選單 - 租戶管理
151                         new MenuItemDefinition(
152                             PageNames.Tenants,
153                             L("Tenants"),
154                             url: "Tenants",
155                             requiredPermissionName: PermissionNames.Pages_Tenants
156                         )
157                     ).AddItem( //二級選單 - 用戶管理
158                         new MenuItemDefinition(
159                             PageNames.Users,
160                             L("Users"),
161                             url: "Users",
162                             requiredPermissionName: PermissionNames.Pages_Users
163                         )
164                     ).AddItem( //二級選單 - 角色管理
165                         new MenuItemDefinition(
166                             PageNames.Roles,
167                             L("Roles"),
168                             url: "Roles",
169                             requiredPermissionName: PermissionNames.Pages_Roles
170                         )
171                     )
172                 )
173                 .AddItem( //一級選單 - 關于
174                     new MenuItemDefinition(
175                         PageNames.About,
176                         L("About"),
177                         url: "About",
178                         icon: "info",
179                         requiresAuthentication: true
180                     )
181                 );
182         }
183 
184         private static ILocalizableString L(string name)
185         {
186             return new LocalizableString(name, CRSConsts.LocalizationSourceName);
187         }
188     }
189 }
View Code

權限更新

在領域層(即JD.CRS.Core)的Authorization下打開CRSAuthorizationProvider.cs //用以存放權限相關資訊

修改如下

 1 using Abp.Authorization;
 2 using Abp.Localization;
 3 using Abp.MultiTenancy;
 4 
 5 namespace JD.CRS.Authorization
 6 {
 7     public class CRSAuthorizationProvider : AuthorizationProvider
 8     {
 9         private static ILocalizableString L(string name)
10         {
11             return new LocalizableString(name, CRSConsts.LocalizationSourceName);
12         }
13         public override void SetPermissions(IPermissionDefinitionContext context)
14         {
15             context.CreatePermission(PermissionNames.Pages_Home, L("Home"));
16             context.CreatePermission(PermissionNames.Pages_Office, L("Office"));
17             context.CreatePermission(PermissionNames.Pages_Department, L("Department"));
18             context.CreatePermission(PermissionNames.Pages_Course, L("Course"));
19             context.CreatePermission(PermissionNames.Pages_Instructor, L("Instructor"));
20             context.CreatePermission(PermissionNames.Pages_Student, L("Student"));
21             context.CreatePermission(PermissionNames.Pages_OfficeInstructor, L("OfficeInstructor"));
22             context.CreatePermission(PermissionNames.Pages_DepartmentInstructor, L("DepartmentInstructor"));
23             context.CreatePermission(PermissionNames.Pages_DepartmentCourse, L("DepartmentCourse"));
24             context.CreatePermission(PermissionNames.Pages_InstructorCourse, L("InstructorCourse"));
25             context.CreatePermission(PermissionNames.Pages_StudentCourse, L("StudentCourse"));
26             context.CreatePermission(PermissionNames.Pages_OfficeReport, L("OfficeReport"));
27             context.CreatePermission(PermissionNames.Pages_DepartmentReport, L("DepartmentReport"));
28             context.CreatePermission(PermissionNames.Pages_CourseReport, L("CourseReport"));
29             context.CreatePermission(PermissionNames.Pages_InstructorReport, L("InstructorReport"));
30             context.CreatePermission(PermissionNames.Pages_StudentReport, L("StudentReport"));
31             context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host);
32             context.CreatePermission(PermissionNames.Pages_Users, L("Users"));
33             context.CreatePermission(PermissionNames.Pages_Roles, L("Roles"));
34         }
35     }
36 }
View Code

關聯更新

與選單/權限關聯的兩個靜態類也需要更新

JD.CRS.Web.Mvc\Startup\PageNames.cs //用以存放選單相關靜態資訊

 1 namespace JD.CRS.Web.Startup
 2 {
 3     public class PageNames
 4     {
 5         public const string Home = "Home";
 6         public const string Office = "Office";
 7         public const string Department = "Department";
 8         public const string Course = "Course";
 9         public const string Instructor = "Instructor";
10         public const string Student = "Student";
11         public const string OfficeInstructor = "OfficeInstructor";
12         public const string DepartmentInstructor = "DepartmentInstructor";
13         public const string DepartmentCourse = "DepartmentCourse";
14         public const string InstructorCourse = "InstructorCourse";
15         public const string StudentCourse = "StudentCourse";
16         public const string OfficeReport = "OfficeReport";
17         public const string DepartmentReport = "DepartmentReport";
18         public const string CourseReport = "CourseReport";
19         public const string InstructorReport = "InstructorReport";
20         public const string StudentReport = "StudentReport";
21         public const string Tenants = "Tenants";
22         public const string Users = "Users";
23         public const string Roles = "Roles";
24         public const string About = "About";
25     }
26 }
View Code

 JD.CRS.Core\Authorization\PermissionNames.cs //用以存放權限相關靜態資訊

 1 namespace JD.CRS.Authorization
 2 {
 3     public static class PermissionNames
 4     {        
 5         public const string Pages_Home = "Pages.Home";
 6         public const string Pages_Data = https://www.cnblogs.com/IT-Evan/p/"Menu.Data";
 7         public const string Pages_Operation = "Menu.Operation";
 8         public const string Pages_Report = "Menu.Report";
 9         public const string Pages_Setting = "Menu.Setting";
10         public const string Pages_About = "Pages.About";
11         public const string Pages_Office = "Pages.Office";
12         public const string Pages_Department = "Pages.Department";
13         public const string Pages_Course = "Pages.Course";
14         public const string Pages_Instructor = "Pages.Instructor";
15         public const string Pages_Student = "Pages.Student";
16         public const string Pages_OfficeInstructor = "Pages.OfficeInstructor";
17         public const string Pages_DepartmentInstructor = "Pages.DepartmentInstructor";
18         public const string Pages_DepartmentCourse = "Pages.DepartmentCourse";
19         public const string Pages_InstructorCourse = "Pages.InstructorCourse";
20         public const string Pages_StudentCourse = "Pages.StudentCourse";
21         public const string Pages_OfficeReport = "Pages.OfficeReport";
22         public const string Pages_DepartmentReport = "Pages.DepartmentReport";
23         public const string Pages_CourseReport = "Pages.CourseReport";
24         public const string Pages_InstructorReport = "Pages.InstructorReport";
25         public const string Pages_StudentReport = "Pages.StudentReport";
26         public const string Pages_Tenants = "Pages.Tenants";
27         public const string Pages_Users = "Pages.Users";
28         public const string Pages_Roles = "Pages.Roles";
29     }
30 }
View Code

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/110590.html

標籤:.NET Core

上一篇:ABP入門教程12 - 展示層實作增刪改查-腳本

下一篇:.net core 使用ViewComponent

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more