【问题标题】:Endpoint Routing .net core 3-Multiple Areas端点路由.net core 3-多个区域
【发布时间】:2019-12-14 10:54:22
【问题描述】:

我正在尝试从 .net core 2.2 路由迁移到 asp.net core 3 中的端点路由,并在启动时遵循以下路由

我的 .net core 2.2 路由是

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

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

.net core 3 路由

  app.UseEndpoints(routes =>
                {                    
                    routes.MapControllerRoute(
                         name:"default",
                         pattern:"{controller=Home}/{action=Index}/{id?}");

                    routes.MapAreaControllerRoute(
                        name: "areas",
                        areaName:  "myarea",
                            pattern: "{area:exists}/{controller=Home}/{did?}/{action=Index}/{id?}");                
                    routes.MapRazorPages();
                   });

我的问题是在 .net core 2.2 以上配置映射多个区域,例如 area1 area2 等,但在 .net core 中,它只有在我给出硬代码区域名称而不是动态区域名称时才有效

【问题讨论】:

标签: c# asp.net-core-routing asp.net-core-3.1


【解决方案1】:

为了不指定任何区域名称,您可以使用它。

  app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");

            endpoints.MapControllerRoute(
            name: "areas",
            pattern: "{area}/{controller}/{did?}/{action=Index}/{id?}");
        });

【讨论】:

  • 所以我们不能使用 MapAreaControllerRoute 作为动态区域名称?
  • 没有。通过使用 MapAreaControllerRoute,您应该提供 areaName。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 2020-04-10
  • 2018-06-24
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多