在 ASP.NET Core MVC 中使用 Areas
为什么要用 Areas
使用 Areas ,可以将应用程序中不同的业务模块分类,每个业务模块都可以有自己的一组 Razor Pages、Controller、View 和 Model,可以更方便的开发和维护。
怎么用 Areas
- 在项目根目录下添加 Areas 文件夹
- 在 Areas 下添加业务文件夹(如 Test)
- 在 Test 文件夹下添加 Controllers 和 Views 文件夹
- 这样 Areas 的文件结构就搭完了,见下图:

- 在开发 Controllers 的时候,有一点需要注意,Areas 下的 Controller 需要添加 Area 属性,见下图:

- 再就是路由有点小改动,如果想匹配到 Areas 下面的 Controller,需要增加以下路由规则,有两种写法:
// 第一种写法
endpoints.MapControllerRoute(
name: "area",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
// 第二种写法
// Test 是 Areas 文件夹下业务文件夹的名称
endpoints.MapAreaControllerRoute(
name: "area",
areaName: "Test",
pattern: "Test/{controller=Home}/{action=Index}/{id?}");

⚠️使用注意
- 如果想让 Areas 文件夹里面的 View 和外面的 View 使用统一的布局,可以将 _ViewStart.cshtml 文件,放到项目根目录下,如下图:

- 当然 Areas 文件夹下的 View 也可以使用单独的页面布局,可以建立自己的 Shared 文件夹,文件夹结构见下图:

- 页面间的跳转,要跳转到 Areas 下的 Controller,除了要指定 Controller 和 Action,还要指定 area,area 的值是业务文件夹的名称,所以跳转链接就变成了这样:
<a asp-area="Test" asp-controller="Home" asp-action="Index"> ... </a>
官网使用教程🔗:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/areas?view=aspnetcore-5.0

本文介绍了ASP.NET Core MVC中使用Areas的原因、步骤及注意事项。通过Areas,开发者能更好地组织不同业务模块,提高开发和维护效率。创建Areas涉及在项目中添加Areas文件夹及相应业务文件夹,Controllers需添加Area属性,路由规则需适当调整。此外,还讨论了如何处理Areas与全局View布局的关系,以及如何进行页面间的跳转。
109

被折叠的 条评论
为什么被折叠?



