Html.ActionLink 显示我已经在 .NET Core 2.2 中的页面的网址



我最近从进行了迁移。NET Core 2.1到。NET Core 2.2,除了@Html之外,一切都很顺利。ActionLink

我有2@Html。ActionLink在我的_LoginPartial.chtml中,一个在注册页面上(我自己做的(,另一个在登录页面上(由Microsoft用Identity创建的(。

如果我点击"注册",一切都很好,它会让我从注册控制器进入注册页面。但我点击"登录",它会让我在同一个页面上,网址也是我已经在的页面。如果我手动浏览,我可以访问登录页面。我想是我的路线有问题,但我没有改变任何东西,所以我有点迷路了!

<ul class="nav navbar-nav navbar-right ml-auto mt-1">
<li class="nav-item" id="Register" style="padding-right:20px;">
@Html.ActionLink("Register", "Index", "Register", null, new { @style = "color:white" })
</li>
<li class="nav-item" id="Login">
@Html.ActionLink("Login", "/Account/Login", "Identity", null, new { @style = "color:white" })
</li>
<li class="nav-item" id="Login">
@Html.ActionLink("Login", "Account", "Identity", null, new { @style = "color:white" })
</li>
</ul>



app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});

我无法理解您的代码。基本上:ActionLink采用以下3个第一参数:string: Textstring: ActionNamestring: ControllerNameHtmlHelper。ActionLink在第一个链接中,您引用的是索引页,控制器名称为Register。听起来不对!

然后,您有两个操作链接,假设它们指向同一页面,但出现了一个错误,您编写了/Account/Login,它不是操作名称。它看起来像一条路线

<li class="nav-item" id="Login">
@Html.ActionLink("Login", "Login", "Account", null, new { @style = "color:white" })
</li>

它将是Login,而不是/Account/Login。控制器名称我认为是Account我认为你在所有动作链接中都犯了同样的错误,所以一定要更正动作名称和控制器名称。

最新更新