ASP.NET MVC маршрутный вопрос - PullRequest
1 голос
/ 16 декабря 2008

У меня есть два маршрута, которые я хочу отобразить в моем приложении ASP.NET MVC

  1. / Пользователь / Логин
  2. / Пользователь / {идентификатор пользователя} / {имя пользователя} / {действие} (например, / Пользователь / 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") %>

Эти карты (с уважением):

/ Пользователи / Войти / Пользователи / 1 / бла

Однако, как только я перешел к / Users / 1 / blah, URL-адрес для входа немедленно превратится в / Users / 1 / blah / login. Есть идеи как это исправить?

Ответы [ 2 ]

1 голос
/ 17 декабря 2008

Вы хотите использовать <%=Html.RouteLink%>

Это очень похоже на проблему , которую я имел, которую вы можете посмотреть здесь

0 голосов
/ 17 декабря 2008

Ваш маршрут использует фильтр авторизации? Требуется ли войти в систему для просмотра страницы / Users / 1 / blah? (т.е. есть ли атрибут [Authorize] в классе UsersController или в действии профиля?)

тогда, если это не фильтр авторизации, я весьма предлагаю вам внедрить Routing Debugger Tool в ваш проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...