Как игнорировать маршрут в asp.net

Я использую среду .NET 3.5 с пакетом обновления 1 (SP1), и я применил маршрутизацию URL-адресов в своем приложении. Я получал ошибки javascript:

Error: ASP.NET Ajax client-side framework failed to load.
Resource interpreted as script but transferred with MIME type text/html.
ReferenceError: Can't find variable: Sys

Я считаю, что моя маршрутизация - это сбор файлов microsoft axd и неправильная отправка javascript. Я провел некоторое исследование и обнаружил, что могу использовать Routes.IgnoreRoute, что должно позволить мне игнорировать axd, как показано ниже:

Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

Но, когда я добавляю эту строку в свой Global.asax, я получаю эту ошибку:

CS1061: 'System.Web.Routing.RouteCollection' does not contain a definition for 'IgnoreRoute' and no extension method 'IgnoreRoute' accepting a first argument of type 'System.Web.Routing.RouteCollection' could be found (are you missing a using directive or an assembly reference?)

У меня есть импортированное пространство имен System.Web.Routing, любые идеи?

Ответ 1

Вам не нужно ссылаться на ASP.NET MVC. Вы можете использовать StopRoutingHandler, который реализует IRouteHandler следующим образом:

routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));

Это часть .NET 3.5 SP1 и не требует MVC. Метод IgnoreRoutes - это метод расширения удобства, который является частью ASP.NET MVC.

Ответ 2

Старый вопрос, но если он все-таки помогает кому-то, это сработало для меня:

routes.Ignore("{resource}.axd/{*pathInfo}");

Метод "Игнорировать" существует, тогда как в стандартном ASP.NET метод "IgnoreRoute" выглядит не так (например, не используя MVC). Это приведет к тому же результату, что и код Haacked, но немного чище...

Ответ 3

Я хотел бы добавить, что вам также нужно убедиться, что порядок вашего правила IgnoreRoutes находится в правильном порядке, иначе ваш первый маршрут будет применен первым, а ваш IgnoreRoute... будет проигнорирован.

Ответ 4

MapRoute и IgnoreRoute являются методами расширения в System.Web.Mvc. У вас есть эта сборка, на которую ссылаются правильно?