Как игнорировать маршрут в формах asp.net URL-маршрутизация
-
07-07-2019 - |
Вопрос
Я использую платформу .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. Правильно ли указана сборка?