簡體   English   中英

Asp.Net 核心 MVC 區域路由未按預期工作

[英]Asp.Net core MVC Area routing not working as expected

我有一個要在其中使用區域的應用程序。 但是路由沒有按預期工作。

我有一個名為Admin的區域

在此處輸入圖像描述

我在 startup.cs 配置方法中有以下代碼

app.UseEndpoints(endpoints =>
            {

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

                endpoints.MapAreaControllerRoute(
                 name: "areas",
                 areaName: "Admin",
                 pattern: "{area}/{controller=Home}/{action=Index}/{id?}"
               );

            });

當我使用以下代碼路由創建錨標記時不起作用

 <a class="nav-link" asp-area="Admin" asp-controller="Home" asp-action="Index">Admin</a>

當應用程序運行時,它讓我關注 url

https://localhost:44321/?area=Admin

問題是什么? 為什么沒有生成正確的 url

這可能會對您有所幫助。 我將它用於我的 .net 核心 3.1 項目,它運行良好,沒有任何問題。

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapAreaControllerRoute(
               name: "AdministratorArea",
               areaName: "Administrator",
               pattern: "Administrator/{controller=Home}/{action=Index}"); //This is Administrator route. You can you {id} and other parameters which you want

            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}"); // This route is for Controllers which are situated in project controller folder
        });

你也得到了正確的代碼。只要確保你的新 AreaControllerRoute 高於默認值。

app.UseEndpoints(endpoints =>
            {
                endpoints.MapAreaControllerRoute(
                    name: "areas",
                    areaName: "Admin",
                    pattern: "{area}/{controller=Home}/{action=Index}/{id?}");

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

            });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM