ASP.NET Вопрос о маршруте MVC
-
21-08-2019 - |
Вопрос
У меня есть два маршрута, которые я хочу отобразить в моем приложении ASP.NET MVC
- /Пользователь/Логин
- /Пользователь/{идентификатор пользователя}/{имя пользователя}/{действие} (например/Пользователь/1/бла/профиль)
Вот маршруты, которые я определил:
routes.MapRoute(
"Profile",
"Users/{userID}/{username}/{action}",
new { controller = "Users", action = "Profile" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
Пока что это отлично работает в большинстве случаев.Следующие URL-адреса работают с моей домашней страницы:
<%= Html.ActionLink((UsersController x) => x.Login(), "Login") %>
<%= Html.ActionLink((UsersController x) => x.Profile(1, "blah") %>
Они соответствуют (с уважением):
/Пользователи/Вход /Users/1/бла
Однако, как только я перешел к / Users / 1 / blah, URL-адрес для входа сразу же превращается в /Users /1 /blah/login .Есть идеи, как это исправить?
Решение
Вы хотите использовать <%=Html.RouteLink%>
Это очень похоже на у меня возникла проблема, которую вы можете просмотреть здесь
Другие советы
попадает ли ваш маршрут под фильтр авторизации?Требуется ли входить в систему для просмотра страницы /Users/1/blah?(то есть.есть ли атрибут [Authorize] в классе UsersController или в действии профиля?)
что ж, тогда, если это не фильтр авторизации, я весьма предлагаю вам реализовать это Инструмент для отладки маршрутизации в ваш проект.