Маршрутизация страниц webforms во вложенную папку в приложении MVC3

#asp.net #asp.net-mvc #iis-7 #routing #webforms

#asp.net #asp.net-mvc #iis-7 #маршруты #webforms

Вопрос:

У меня есть наследие ASP.Net Сайт Webforms, который я конвертирую в MVC. Существующие страницы веб-форм находятся в корневом каталоге приложения (http://localhost/legacypage.aspx ), но я хочу, чтобы они находились в папке / legacy / в приложении MVC, чтобы мне не приходилось постоянно видеть их в решении Visual Studio. Однако я не хочу, чтобы устаревшие страницы включали подкаталог в URL (http://localhost/legacy/legacypage.aspx ), Я хочу, чтобы они продолжали быть доступными с исходного URL

Ответ №1:

Вы могли бы сделать что-то подобное в своем global.asax:

   void Application_Start(object sender, EventArgs e)
  {
    RegisterRoutes(RouteTable.Routes);
  }

  void RegisterRoutes(RouteCollection routes)
  {
    routes.MapPageRoute(null, "{pagename}.aspx", "~/legacy/{pagename}.aspx");
  }
  

Возможно, вам также потребуется другой вызов MapPageRoute для / route, потому что это исправит только маршрут / default.aspx.

Комментарии:

1. будет ли этот подход включать параметры строки запроса?

2. Да — это будет охватывать параметры строки запроса — только что протестировал это.