Taghelpers被ViewComponent覆盖

时间:2016-02-28 00:46:52

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

我有ASP.NET核心应用程序(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> - 没有任何区别。

问题是,一旦我点击登录并进入登录屏幕,顶级链接(订单,客户等)全部变成&#34; /帐户/登录&#34;!显然,如果我把老式的href,它们保持不变。但最令人费解的是,如果我明确指定Action -

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

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

1 个答案:

答案 0 :(得分:0)

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

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

将产生

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

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