В чем проблема с моим маршрутом ASP.NET MVC? - PullRequest
0 голосов
/ 26 апреля 2011

В моем приложении ASP.NET MVC есть несколько маршрутов, которые обрабатывают перенаправление старых URL-адресов.URL-адрес, который я перенаправляю:

contentSpanishContentList.aspx

Вот маршрут:

routes.MapRoute("RedirectLegacyContent1",
                "content{contentUri}.aspx",
                new { controller = "Redirect", action = "Content", contentUri = string.Empty, contentId = 0 });

Проблема в том, что он не найден.Я понял, что проблема заключается в (выделен жирным шрифтом) contentSpanish * Content * List.aspx.Что я должен сделать, чтобы этот маршрут работал с этим делом?

Ответы [ 2 ]

1 голос
/ 26 апреля 2011
  1. Используйте Fiddler, чтобы посмотреть, что происходит. 404 происходит по первому запросу? Или это происходит после перенаправления?

  2. Установите пакет RouteDebugger и посмотрите, что он вам скажет.

1 голос
/ 26 апреля 2011

Два решения

  1. Переименуйте ваши страницы, чтобы они не включали одну и ту же константную строку (в вашем случае это слово content).
  2. Напишите собственный маршрут, который может анализироватьваши запросы - все, что вам нужно переопределить, - это метод GetRouteData.И если вы планируете использовать этот маршрут только для входящих запросов (без создания каких-либо URL-адресов в ваших представлениях для указания на любую из этих страниц, т. Е. С использованием Url.Action или Html.ActionLink), тогда самый простой способ - создать что-то вродеRegExRoute, который было бы легко написать, а также легко разрешить такого рода запросы.

Первый прост, второй универсален.

...