Como ignorar rota em formulários asp.net url roteamento
-
07-07-2019 - |
Pergunta
Eu estou usando o framework SP1 .NET 3.5 e eu tenho implementado URL roteamento em meu aplicativo. Eu estava recebendo erros de 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
O que eu acredito é porque o meu encaminhamento é pegar os arquivos AXD Microsoft e não corretamente enviando o javascript. Eu fiz alguma pesquisa e descobri que eu poderia usar Routes.IgnoreRoute
, que deve permitir-me a ignorar o AXD como abaixo:
Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Mas, quando eu adicionar essa linha ao meu Global.asax eu recebo este erro:
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?)
Eu tenho o namespace System.Web.Routing
importado, todas as idéias?
Solução
Você não precisa fazer referência ASP.NET MVC. Você pode usar os StopRoutingHandler que implementa IRouteHandler como assim:
routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));
Esta é parte do .NET 3.5 SP1 e não requer MVC. O método IgnoreRoutes é um método de extensão conveniência que faz parte da ASP.NET MVC.
Outras dicas
Uma questão de idade, mas no caso ele ainda ajuda a ninguém, isso funcionou para mim:
routes.Ignore("{resource}.axd/{*pathInfo}");
existir O método de "ignorar", ao passo que no padrão do ASP.NET o método "IgnoreRoute" parece não (isto é, não utilizando MVC). Isso vai atingir o mesmo resultado que o código do Haacked, mas é um pouco mais limpo ...
Eu gostaria apenas de acrescentar que você também precisa ter certeza da ordem de seus IgnoreRoutes regra é na ordem correta, caso contrário seu primeiro rota será aplicada pela primeira vez e seu IgnoreRoute vai ... bem ser ignorado.
MapRoute e IgnoreRoute são métodos de extensão em System.Web.Mvc --- você tem que assembly referenciado corretamente?