Получение маршрута MVC по умолчанию для перехода в ~ / default.asp - PullRequest
2 голосов
/ 10 июня 2010

Я добавляю некоторые функции MVC на существующий сайт (FWIW, большинство из которых в классическом ASP).В результате мне нужно сохранить маршрутизацию по умолчанию, идущую к ~ / default.asp (как минимум - предпочтительно документ по умолчанию, указанный в IIS).

Есть ли способ записать маршрут в RegisterRoutes так, чтобызапрос корня сайта (например, http://localhost, http://localhost/, или http://localhost/default.asp) будет напрямую получать страницу по умолчанию, а не пытаться найти контроллер / действие? Или ямне нужно написать свой собственный HttpModule, который отфильтрует его и не даст ему попасть в MvcHandler (как в этом блоге )?

Кстати, я это гуглил, но большинство обращенийдля MVC версии 1 или более ранней, и маршрутизация по умолчанию, по-видимому, изменилась в версии 2 (т. е. больше нет default.aspx, перенаправляющего на ~ / Home), поэтому они не применимы напрямую. Тем не менее, те, которые были тамне решил эту проблему.

1 Ответ

3 голосов
/ 25 июня 2010

Мартен Баллиау написал замечательную статью о смешивании веб-форм ASP.NET и ASP.NET MVC .В статье вам нужно указать, что MVC не следует маршрутизировать определенные маршруты:

В вашем случае это будет:

routes.IgnoreRoute("default.asp/{*pathInfo}"); // If you don't pass arguments just use default.asp
routes.IgnoreRoute("");

.маршруты.Таким образом, MVC будет игнорировать эти маршруты и позволит Webforms обрабатывать их.При условии, что / будет указывать на /default.asp в Webforms, это должно работать.Тем не менее, я не проверял это ...

...