簡體   English   中英

Netcore 3.1 區域路由問題,路由無效

[英]Area Route Problem in Netcore 3.1, invalid routing

我有地區問題

在 netcore 3.1 中,我在 startup.cs 上添加了我的端點,

        app.UseEndpoints(endpoints =>
        {
            //   endpoints.MapControllers();

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

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

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

            endpoints.MapRazorPages();
        });

添加服務

    services.AddControllersWithViews();//.AddNewtonsoftJson(); ;
        services.AddRazorPages();

但它是這樣路由的,顯然是行不通的

 controller/action?area=area

例子

 Patients/Create?area=Medical

這就是我所說的方式(根據傳統目的)

    <a class="btn btn-primary" href="@Url.Action("Create", "Patients", new { area = "Medicals" })">
New Patient</a>

我以經典的方式嘗試 netcore 並使用相同的路線

    <a class="btn btn-primary" asp-action="Create" asp-controller="Patients" asp-area="Medicals">
New Patient</a>

我安裝了Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 3.1.9包,而不是使用剃刀的主要問題

解決辦法太蠢了,區域配置的順序很重要,所以,區域需要先設置

        endpoints.MapControllerRoute(
           name: "default",
           pattern: "{area:exists}/{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