• asp.net core mvc区域路由


    ASP.NET Core 区域路由(Area Routing)是一种将应用程序中的路由划分为多个区域的方式,类似于 MVC 的控制器和视图的区域划分。区域路由可以帮助开发人员更好地组织应用程序的代码和路由,并使其更易于维护。

    要使用区域路由,在 ASP.NET Core 应用程序中需要进行以下配置:

    1. 在应用程序的 Startup.cs 文件中,添加区域路由的支持。在 ConfigureServices 方法中,添加以下代码:
    services.AddControllersWithViews().AddRazorPagesOptions(options =>
    {
        options.Conventions.AddAreaPageRoute("Admin", "/Index", "admin");
    });
    services.AddRazorPages();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 在应用程序中创建一个或多个区域文件夹,例如 Areas/Admin。在该文件夹中,创建一个 Startup.cs 文件,用于配置该区域的路由。
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
        }
    
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "admin_default",
                    pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    1. 在区域中创建控制器和视图,例如 Areas/Admin/Controllers/UsersController.csAreas/Admin/Views/Users/Index.cshtml。在控制器中,可以使用 Area 特性来指定该控制器属于哪个区域。
    using Microsoft.AspNetCore.Mvc;
    
    [Area("Admin")]
    public class UsersController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. 在视图中使用 Url.Action 生成区域路由的 URL。例如,在 Areas/Admin/Views/Users/Index.cshtml 视图中生成控制器的 URL 可以使用以下代码:
    <a href="@Url.Action("Index", "Users", new { area = "Admin" })">Manage Users</a>
    
    • 1

    这样,当用户访问以 /Admin 开头的 URL 时,就会自动将路由映射到 Areas/Admin 区域中的控制器和视图。区域路由使得应用程序的代码和路由更加整洁、有序,并可以更好地组织和管理。

  • 相关阅读:
    java计算机毕业设计网上教务评教系统源码+系统+数据库+lw文档+mybatis+运行部署
    Java设计模式:你见过大厂是怎么玩单列模式的吗?
    神经网络的数学基础资料,神经网络的数学理论
    详解Java的八种基本数据类型
    单机服务器、集群和分布式
    Apt 和 Apt-get - 使用哪一个?
    支付宝使用OceanBase的历史库实践分享
    leetcode-495-提莫攻击
    Annealing-based Label-Transfer Learning for Open World Object Detection(论文解析)
    OGG将Oracle全量同步到kafka
  • 原文地址:https://blog.csdn.net/qq_41942413/article/details/133466001