web-dev-qa-db-ja.com

エンドポイントルーティング.netコア3-複数の領域

起動時に次のルートで.netコア2.2ルーティングからasp.netコア3のエンドポイントルーティングに移行しようとしています

私の.netコア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コア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上記の構成マップの複数のエリア(area1area2など)にありますが、.net coreでは、動的エリア名ではなくハードコードエリア名を指定した場合にのみ機能します

5
Zia

エリア名を指定しない場合は、これを使用できます。

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

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