Pregunta

Estoy usando el framework .NET 3.5 SP1 y he implementado el enrutamiento de URL en mi aplicación. Recibía errores de JavaScript:

Error: no se pudo cargar el marco del lado del cliente ASP.NET Ajax.
Recurso interpretado como script pero transferido con texto tipo MIME / html.
ReferenceError: no se puede encontrar la variable: Sys

Lo que creo es porque mi enrutamiento está recogiendo los archivos axd de microsoft y no enviando correctamente el javascript. Investigué un poco y descubrí que podía usar Routes.IgnoreRoute , lo 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' no contiene una definición para 'IgnoreRoute' y no se puede encontrar ningún método de extensión 'IgnoreRoute' que acepte un primer argumento de tipo 'System.Web.Routing.RouteCollection' (falta un usando una directiva o una referencia de ensamblaje?)

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

¿Fue útil?

Solución

No necesita hacer referencia a ASP.NET MVC. Puede usar el StopRoutingHandler que implementa IRouteHandler como entonces:

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 forma parte de ASP.NET MVC.

Otros consejos

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

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

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

Solo me gustaría agregar que también debe 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á ignorado.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top