2015-06-22 2 views
2

Проведя много времени, задаваясь вопросом, почему так сложно выполнять постоянное перенаправление в MVC, я наткнулся на эту страницу http://www.eworldui.net/blog/post/2008/04/ASPNET-MVC---Legacy-Url-Routing.aspx, которая сделало ее выглядящей умеренно простой.Постоянное перенаправление не работает

Я скачал пример кода, скопированный все вспомогательные классы в новый проект MVC, и добавил следующее к RouteConfig.RegisterRoutes() метод ...

routes.Add("Jim1", new LegacyRoute("Default.aspx", "Home", new LegacyRouteHandler())); 

Идея состояла в том, чтобы просьбы о /Default.aspx сопоставлено с/Home вместо. Однако это просто дает 404 в браузере. При отладке он ломается по методу LegacyHandler.ProcessRequest() в строке, которая генерирует исключение «Invalid Url».

Кто-нибудь использовал этот код, который может посоветовать? Или у кого-нибудь есть ПРОСТОЕ решение для этого? У меня есть старый сайт ASP.NET WebForms, который я конвертировал в MVC, и хочу настроить перенаправление. Я не могу поверить, насколько это сложно.

У вас есть идеи?

ответ

0

В случае, если это помогает всем, я сделал еще несколько поисков и нашел довольно простое решение, которое действительно сработало.

Если вы посмотрите на this blog post, вы найдете довольно простой подход, который требует, чтобы вы добавили некоторые классы в свое решение. Я создал новую библиотеку классов и добавил их там. Я тогда ссылки это из моего проекта MVC, и добавил строки, подобные следующим моим RegisterRoutes() метод ...

routes.MapLegacyRoute(null, "Default.aspx", new {controller = "Home", action = "Index"}); 
routes.MapLegacyRoute(null, "About.aspx", new {controller = "Home", action = "About"}); 
routes.MapLegacyRoute(null, "Contact.aspx", new {controller = "Home", action = "Contact"}); 

работал как лечить!

Надеюсь, это поможет кому-то. Это спасло бы меня, если бы я нашел это раньше!

Смежные вопросы