Подтвердить что ты не робот

Маршрутизация ASP.NET - игнорирование маршрутов для файлов с определенным расширением, независимо от каталога

Скажем, я хочу удалить любые сопоставленные маршруты для файлов с определенным расширением файла.

 RouteTable.Routes.Ignore("{root}.hello");

Работает для любого файла с расширением .hello в корневом каталоге, однако, как только я вхожу в любые подпапки, правило "игнорировать" не применяется.

Ive пробовал много разных комбинаций, но, похоже, не может получить тот, который не бросает исключение компилятора или не работает?

4b9b3361

Ответ 1

Ознакомьтесь с Phil blog относительно этого. В принципе, вы бы сделали что-то вроде этого:

Пример 1: Не выполнять маршрутизацию для любого запроса для всех файлов .aspx:

routes.IgnoreRoute("{*allaspx}", new {[email protected]".*\.aspx(/.*)?"});

Пример 2: не выполнять маршрутизацию для любого запроса для favicon.ico

routes.IgnoreRoute("{*favicon}", new {[email protected]"(.*/)?favicon.ico(/.*)?"});

Ответ 2

Если вы используете ASP.NET MVC, используйте IgnoreRoutes (метод расширения MVC)

Routes.IgnoreRoute("{*foo*}", new { foo = @"someregextoignorewhatyouwant"});

Если вы используете веб-формы ASP.NET, используйте StopRoutingHandler, который реализует IRouteHandler.

routes.Add(new Route("*someregextoignorewhatyouwant*", new StopRoutingHandler()));