为什么ASP.NET MVC标记帮助程序无法创建正确的链接?

时间:2018-07-26 11:36:47

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

我有一个带有脚手架标识的asp.net核心MVC项目,并且_LoginPartial视图中的标记帮助器作用很差。在“剃刀”视图中,链接看起来像这样,并且不会导航到任何页面或视图。

  <a class="nav-link" asp-area="Identity" asp-page="/Account/Manage/Index">Manage Account</a>

但是由于某种原因,它是这样渲染的(从chrome开发控制台中获取):

href="/?area=Identity&page=%2FAccount%2FManage%2FIndex"

我不知道为什么会这样,并且我不知道如何正确显示它并允许导航到正确的页面。

2 个答案:

答案 0 :(得分:2)

我实际上发现了问题所在。在Identity区域的Configure方法中的IdentityHostingStartup类中,我已经将services.AddDefaultIdentity<IdentityUser>更改为services.AddIdentity(IdentityUser, IdentityRole>,这对为什么更改URL生成方式没有意义,但是我将其更改回services.AddDefaultIdentity<IdentityUser>后,一切很快恢复正常。

答案 1 :(得分:0)

您可以尝试关注

<a asp-area="Account"
  asp-controller="Manage"
  asp-action="Index">About Blog</a>

它将创建以下html

<a href="/Account/Manage/Index">About Blog</a>

如果您具有如下所示的自定义路线映射

[Route("/Speaker/Evaluations", Name = "speakerevals")]
public IActionResult Evaluations() => View();

然后尝试

<a asp-route="speakerevals">Speaker Evaluations</a>

它将创建如下的html

<a href="/Speaker/Evaluations">Speaker Evaluations</a>

有关更多信息,请单击here