锚标签助手在区域视图中自动将区域添加到 link

anchor tag helper auto add area to link in area view

  <a asp-action="Logout" asp-controller="Account" > logout</a>

主页没问题,link 看起来像 /account/logout 但在用户区页面 link 内看起来像 /user/account/logout 和错误 NotFound

这是我的地图路线

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

似乎是设计使区域视图中没有 asp-area 的 link 会将区域名称添加到 url。Area Name 用于指示位置找到控制器。例如,如果你关注Areas in ASP.NET Core,它会在不同的Area中有多个不同的HomeController。没有区域名称,它将无法重定向到具有 Home/Index.

的特定控制器

如果你想从区域重定向到根控制器,你可以在区域页面中使用以下内容:

<a href="@Url.Action("Logout","Account", new { area="" })">logout</a>

或者您应该在用户区域下添加相应的视图和控制器,如下所示:

像这样编辑锚点

 <a asp-action="Logout" asp-controller="Account" asp-area="" > logout</a>