锚标签助手在区域视图中自动将区域添加到 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>
<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>