Если вы явно ввели правильный URL-адрес в браузере, вы получите правильную страницу?
Я часто сталкивался с этой проблемой, особенно когда у меня есть Области. Я обнаружил, что использование T4MVC (NuGet Package) для всех @ Html.ActionLinks и т. Д. Решает проблему. Например, используя T4MVC вместо:
<li>@Html.ActionLink("Home Page", "Index", "Home")</li>
... вы можете написать:
<li>@Html.ActionLink("Home Page", MVC.Home.Index())</li>
Обратите внимание на MVC.Home.Index (). Вот как T4MVC позволяет вам покончить с волшебными строками (actionName и controllerName). Другими словами, T4MVC позволяет использовать следующую перегрузку HtmlHelper.ActionLink:
HtmlHelper.ActionLink(string linkText, ActionResult result)
Вместо:
HtmlHelper.ActionLink(string linkText, string actionName, string controllerName)
По причинам, которые меня избегают прямо сейчас (я забыл, почему!), Это решает проблему, которая, я думаю, у вас возникла.
Просто проверьте и посмотрите, работает ли ввод нужного URL в адресную строку. Если так, то это плохие ссылки, а не маршрутизация.
Если у вас все еще есть проблема, то это не ответ ...