#asp.net-mvc #webforms #asp.net-mvc-routing
#asp.net-mvc #веб-формы #asp.net-mvc-routing
Вопрос:
Недавно я частично преобразовал Asp.Net приложение веб-форм для использования MVC. У нас все еще есть части приложения в веб-формах (.aspx-страницы) и мы используем маршрутизацию MVC для работы с контроллерами и тому подобное. Я добавил маршрут MVC, например
routes.MapRoute("Users", "Users/{controller}/{action}/", new { controller = "Timesheet", action = "List" });
Существует папка с именем «Пользователи», которая содержит несколько страниц aspx, которые мы все еще используем.
Когда я нажимаю на URL http://localhost/Users/
-адрес, я получаю список каталогов содержимого папки «Пользователи». По-видимому, список каталогов имеет приоритет над маршрутизацией URL-адресов MVC, и это может быть переопределено путем изменения настроек сервера IIS7.
Как я могу переопределить это поведение с помощью изменений кода или web.config?
Ссылки:
http://forums.asp.net/t/1251156.aspx/1
http://learn.iis.net/page.aspx/121/iis-7-and-above-modules-overview/
Комментарии:
1. packtpub.com/article/mixing-asp.net-webforms-and-asp.net-mvc это метод, который я использовал для добавления MVC в существующее приложение веб-форм
Ответ №1:
Установка RouteExistingFiles=true в RouteCollection позволяет достичь именно этого. Это позволит ASP.NET MVC для обработки маршрутов даже для существующих каталогов.
Комментарии:
1. Хансельман обсуждал это здесь: hanselman.com/blog /…
Ответ №2:
Используйте этот ignoreroute:
routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}");
Перечисление метода RegisterRoutes
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{WebPage}.aspx/{*pathInfo}");
//routes.MapPageRoute("users", "users", "~/admin/default.aspx");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "home", action = "index", id = UrlParameter.Optional } // Parameter defaults
);
}
Это исключило бы все страницы с расширением «.aspx» из маршрутизации.