[ASP.NET Core]ASP.NET Core应用程序开发中如何使用区域(Area)来管理子目录?

ASP.NET Core 作者: Rector 21阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

区域(Area)早在ASP.NET MVC的应用程序开发中就已经存在了,使用区域可以让我们在管理应用程序的结构目录时更加方便和清晰。比如,项目中需要使用一个单独的管理员的目录(Admin),在这个目录中还可能创建若干子目录以及对应的视图等等,ASP.NET MVC中的区域便可支持这种结构。

在ASP.NET Core中是否也有类似的区域设置呢,如果有又应该如何使用呢?

方案一

首先,答案是肯定的,ASP.NET Core应用程序是支持区域(Area)的。

ASP.NET Core应用程序要使用区域,必须得先添加区域的路由规则。在启动类Startup.cs文件中的路由配置中添加支持区域的路由,如下:

app.UseMvc(routes =>
{
    routes.MapRoute("areaRoute", "{area:exists}/{controller=Admin}/{action=Index}/{id?}");

    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

其中routes.MapRoute("areaRoute", "{area:exists}/{controller=Admin}/{action=Index}/{id?}");即为支持区域的路由规则。

然后,在ASP.NET Core项目的根目录下创建一个名为 Area 的文件夹,再在Area目录中创建你需要的区域目录,比如问题中的Admin

区域文件夹创建完成后,便可使用区域来拆分项目的业务了。

需要注意的是: ASP.NET Core区域的目录结构需与非区域项目的结构保持一致,即区域中的控制器放在[Controllers]文件夹中,视图文件放在[Views]文件夹中。

假如在Admin区域的控制器中创建了一个名为AdminController的控制器,则我们可以使用Area属性类来指定这个控制器的区域,示例代码如下:

[Area("Admin")]
[Route("admin/[controller]")]
public class AdminController : Controller
{
    public AdminController()
    {

    }

    public IActionResult Index()
    {
        return View();
    }
}

然后在Admin区域的视图文件夹[Views]中创建对应的视图文件即可。

阅读了该文章的人还浏览了...

本文永久链接码友网 » [ASP.NET Core]ASP.NET Core应用程序开发中如何使用区域(Area)来管理子目录?

发布于: 2018-11-07 07:15:44
分享扩散: