Как игнорировать маршрут в формах asp.net URL-маршрутизация

StackOverflow https://stackoverflow.com/questions/273447

Вопрос

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

<код> Ошибка: не удалось загрузить клиентскую среду ASP.NET Ajax.
Ресурс интерпретируется как скрипт, но передается с MIME-типом text / html.
ReferenceError: Не могу найти переменную: Sys

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

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

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

<код> CS1061: «System.Web.Routing.RouteCollection» не содержит определения для «IgnoreRoute», и не найдено никакого метода расширения «IgnoreRoute», принимающего первый аргумент типа «System.Web.Routing.RouteCollection» (если вы пропустили используя директиву или ссылку на сборку?)

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top