Asp.Net MVC неправильный URL, сгенерированный Url.Action! - PullRequest
3 голосов
/ 16 ноября 2009

Я ищу и читаю все вопросы, которые могу найти здесь и в Google, и я не могу найти ответ!

Путь в вопросах это:

routes.MapRoute("Admin - Change Password", "Admin/ResetPassword/{UserId}", New With {.controller = "Admin", .action = "ResetPassword", .UserId = ""})

URL-адрес, который он генерирует: / Admin / UserAdmin

это страница, на которой находится url.action. Не знаю, имеет ли это значение или нет.

Когда я использовал отладчик маршрута, он показывал URL-адрес, который я ожидаю, чтобы он генерировался в соответствии с URL-адресом, который я набрал в моей адресной строке.

True Admin / ResetPassword / {UserId} контроллер = Admin, действие = ResetPassword, userId =

Единственные другие маршруты, по которым он подходил, были:

True {controller} / {action} / {id} controller = Home, action = Index, id =

True {* catchall} (ноль)

Маршрут {controller} / {action} / {id} является последним, поэтому он не должен мешать.

Есть идеи?

РЕДАКТИРОВАТЬ: код помощника:

<%Url.Action("ResetPassword", "Admin", new with {.UserId= u.userId}) %>

Ответы [ 2 ]

7 голосов
/ 17 ноября 2009

Не используйте Action / ActionLink для генерации URI для именованного маршрута. Вместо этого используйте RouteLink / RouteUrl. Это быстрее, и никогда не удается найти нужный вам маршрут. Полное объяснение здесь .

0 голосов
/ 17 ноября 2009

Итак, я предполагаю, что проблема в том, что вы не получаете представление, ожидаемое при запуске приложения?

Какую версию IIS вы используете? Если вы используете XP / IIS 5.1, вы обязательно добавили маску? Это распространенная ошибка в IIS 5.1.

Вы можете обратиться по ссылке здесь .

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