c# asp.net url-routing axd ignoreroute

c# - Cómo ignorar la ruta en asp.net forms url routing



url-routing axd (4)

MapRoute e IgnoreRoute son métodos de extensión en System.Web.Mvc --- ¿tiene ese ensamblaje referenciado correctamente?

Estoy usando el framework .NET 3.5 SP1 y he implementado el enrutamiento de URL en mi aplicación. Estaba obteniendo errores 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

Lo cual creo es porque mi ruta está recogiendo los archivos de microsoft axd y no enviando correctamente el javascript. Investigué un poco y descubrí que podía usar Routes.IgnoreRoute , que debería permitirme ignorar el axd como se muestra a continuación:

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

Pero cuando agrego esa línea a mi Global.asax obtengo este error:

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?)

Tengo importado el espacio de nombres System.Web.Routing , ¿alguna idea?


No necesita hacer referencia a ASP.NET MVC. Puede usar el StopRoutingHandler que implementa IRouteHandler de la siguiente manera:

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

Esto es parte de .NET 3.5 SP1 y no requiere MVC. El método IgnoreRoutes es un método de extensión de conveniencia que es parte de ASP.NET MVC.


Me gustaría agregar que también necesita asegurarse de que el orden de su regla IgnoreRoutes esté en el orden correcto; de lo contrario, su primera ruta se aplicará primero y su IgnoreRoute será ... ignorada.


Una vieja pregunta, pero en caso de que todavía ayude a alguien, esto funcionó para mí:

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

El método "Ignore" existe, mientras que en ASP.NET estándar, el método "IgnoreRoute" no aparece (es decir, no usa MVC). Esto logrará el mismo resultado que el código de Haacked, pero es ligeramente más limpio ...