<a asp-action="Logout" asp-controller="Account" > logout</a>
主页上没有问题,链接看起来像/ account / logout 但在“用户区页面”链接中,外观类似于/ user / account / logout 和错误未找到
这是我的地图路线
endpoints.MapControllerRoute(
name: "areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute("defualt", "{controller=Home}/{action=Index}/{id?}");
答案 0 :(得分:0)
似乎是设计使然,在区域视图中没有asp-area
的链接会将区域名称添加到url。Area Name
用于指示在哪里找到Controller。例如,如果您遵循Areas in ASP.NET Core,则在不同的HomeController
中它将有多个不同的Area
。没有区域名称,它将无法使用Home/Index
重定向到特定的Controller。
如果要从Area重定向到根控制器,可以在Area页面中使用以下内容:
<a href="@Url.Action("Logout","Account", new { area="" })">logout</a>