參考文檔: https://www.cnblogs.com/Allen0910/p/6629507.html https://blog.csdn.net/dupeng0811/article/details/90616546 首先需要在 Configure 方法中的預設路由配置下邊添加區域路由配置 ...
參考文檔:
https://www.cnblogs.com/Allen0910/p/6629507.html
https://blog.csdn.net/dupeng0811/article/details/90616546
首先需要在 Configure 方法中的預設路由配置下邊添加區域路由配置
1 app.UseEndpoints(endpoints => 2 { 3 endpoints.MapControllerRoute( 4 name: "default", 5 pattern: "{controller=Home}/{action=Index}/{id?}"); 6 7 //區域路由配置 8 endpoints.MapAreaControllerRoute( 9 name: "areas", "areas", 10 pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); 11 12 });
項目中預設控制器里分別有HomeController 和 TestController 兩個控制器及View視圖,待會兒添加區域模塊之後,要和這兩個預設的控制器做訪問對比
然後接下來需要手動添加一個文件夾, 名字:Areas (必須用這個名字),在該文件夾下創建一個 Users 區域模塊,結構如下
在模塊下添加一個基類BaseController,在基類的頭部聲明路由屬性 [Route("[area]/[controller]/[action]")] ,這樣以後擴展就比較方便了
代碼如下:
1 [Route("[area]/[controller]/[action]")] 2 public class BaseController : Controller 3 { 4 5 }
然後再添加一個區域控制器AreaController,用於繼承上邊的基類 BaseController
在區域控制器AreaController 中添加屬性標簽 [Area("users")]
1 [Area("users")] 2 public class AreaController : BaseController 3 { 4 5 }
然後再區域中添加的控制器都繼承該區域控制器
1 public class TestController : AreaController 2 { 3 public IActionResult Index() 4 { 5 return View(); 6 } 7 } 8 9 public class HomeController : AreaController 10 { 11 public IActionResult Index() 12 { 13 return View(); 14 } 15 }
接下了開始運行訪問剛纔創建的頁面,
預設訪問的是預設控制器下的首頁,即:預設的 Home/Index
換成:test/index 則調到如下圖所示頁面
在地址欄輸入: /users/home/index ,頁面跳轉到區域模塊了
換成路徑: /users/test/index 則出現下邊頁面