1

我有 ASP.NET Core 应用程序(fka ASP.NET 5、ASP.NET MVC 6)。布局页面有以下相关链接:

<li><a asp-controller="order">Orders</a></li>
<li><a asp-controller="customer">Customers</a></li>
<li><a asp-controller="whatever">Something Else</a></li>

然后(通过 ViewComponent)

<li><a asp-controller="account">Login</a></li>

Login.cshtml 有以下内容:

<form asp-controller="Account" asp-action="Login" method="post" role="form">
...
</form>

<form action="/Account/Login">...</form>- 没有任何区别。

问题是,一旦我点击登录并进入登录屏幕,顶级链接(订单、客户等)都会变成“/Account/Login”!显然,如果我把 old-fashioned href,它们保持不变。但最令人费解的是,如果我明确指定 Action -

<li><a asp-controller="order" asp-action="Index">Orders</a></li>

一切正常!这是我偶然发现的错误,还是我不理解的设计?

4

1 回答 1

0

Anchor 标签助手在找不到指定路由时默认为空,因此它可能只是默认为当前页面。

<a asp-controller="SomeUnknownController">Link!</a>

会产生

<a href="">Link!</a>

由于我们不知道您的Account/Login操作发生了什么,我们不能确定这是锚 TagHelper 中的错误。但是某处的路由弄乱了。

于 2016-03-01T21:24:47.977 回答