У меня есть приложение 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»! Очевидно, если я поставлю старомодные href
, они останутся без изменений. Но самая загадочная часть заключается в том, что если я укажу действие явно -
<li><a asp-controller="order" asp-action="Index">Orders</a></li>
Все работает корректно! Это ошибка, на которую я наткнулся, или это дизайн, который я не понимаю?
UrlHelper.Action
(именно так помощник тега создает ссылку) - person Daniel J.G.   schedule 29.02.2016