ASP.NET MVC проблема маршрутизации - PullRequest
0 голосов
/ 04 февраля 2011

У меня ужасное время с проблемой маршрутизации. Надеюсь, вы поможете мне.

Вот URL-адреса, которые работают:

http://www.example.com/Stories/Action-Name/StoryName

http://www.example.com/Stories/Action-Name/ (он автоматически перенаправляется в ~ / Stories / Action-Name / StoryName, что мне и нужно.

Однако, если я удаляю завершающий " / " (т.е. http://www.example.com/Stories/Action-Name), то он перенаправляет на: http://www.example.com/StoryName

Понятия не имею, как и почему это происходит.

Вот маршрут, который я настроил в Global.asax:

routes.MapRoute("SurvivorStoriesRedirect", "Stories/Action-Name/{id}", new {
                controller = "Stories",
                action = "Action-Name",
                id = UrlParameter.Optional
            });

Пожалуйста, дайте мне знать, что я делаю неправильно.

Спасибо.

РЕДАКТИРОВАТЬ -

Не уверен, что или как я все испортил, но я только добавил это:

routes.MapRoute("SurvivorStoriesRedirect", "Stories/{action}/{id}", new {
                controller = "Stories",
                action = "Index",
                id = UrlParameter.Optional
            });

И удалил все другие маршруты для контроллера "Stories", и все, казалось, работало.

Ответы [ 2 ]

3 голосов
/ 04 февраля 2011

Возможно, вам потребуется создать маршрут для обработки вызовов действий по умолчанию.Попробуйте это:

routes.MapRoute("SurvivorStoriesDefault", "Stories/Action-Name", new {
                controller = "Stories",
                action = "Action-Name"
            });
1 голос
/ 04 февраля 2011

Захватите Phil Haack's routedebugger из NuGet или загрузите zip из post Фила, и вы сможете просматривать матчи, которые вам не покажут почему , но вы увидите как и скоро поймете это.

...