Как игнорировать маршрут в формах asp.net URL-маршрутизация - PullRequest
22 голосов
/ 07 ноября 2008

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

Error: ASP.NET Ajax client-side framework failed to load.<br> Resource interpreted as script but transferred with MIME type text/html.<br> 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, есть идеи?

Ответы [ 4 ]

39 голосов
/ 09 ноября 2008

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

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

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

8 голосов
/ 25 октября 2011

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

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

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

3 голосов
/ 06 апреля 2009

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

1 голос
/ 07 ноября 2008

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

...