【问题标题】:anchor tag helper auto add area to link in area view锚标记助手自动将区域添加到区域视图中的链接
【发布时间】:2019-12-28 19:41:40
【问题描述】:
  <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?}");

【问题讨论】:

  • 我不会得到你的实际问题,这是一种重定向问题的使用 - RedirectToAction
  • 请尝试正确解释,因为您根本不清楚。像这样尝试什么是输入,你需要什么作为输出。

标签: asp.net asp.net-mvc asp.net-core asp.net-core-3.0 .net-core-3.0


【解决方案1】:

似乎是设计使然,区域视图中没有asp-area 的链接会将区域名称添加到url。Area Name 用于指示在哪里可以找到控制器。例如,如果您关注Areas in ASP.NET Core,它将在不同的Area 中有多个不同的HomeController。如果没有区域名称,它将无法重定向到带有Home/Index 的特定Controller。

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

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

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

【讨论】:

    【解决方案2】:

    像这样编辑锚

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      相关资源
      最近更新 更多