Question

J'utilise le framework .NET 3.5 SP1 et j'ai implémenté le routage d'URL dans mon application. Je recevais des erreurs javascript:

Erreur: échec du chargement de l'infrastructure côté client ASP.NET Ajax.
Ressource interprétée comme un script mais transférée avec le type MIME text / html.
ReferenceError: Impossible de trouver la variable: Sys

Ce qui, à mon avis, tient au fait que mon routage récupère les fichiers Microsoft Axd et n’envoie pas correctement le javascript. J'ai fait des recherches et découvert que je pouvais utiliser Routes.IgnoreRoute , ce qui devrait me permettre d'ignorer le axd comme ci-dessous:

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

Mais, lorsque j'ajoute cette ligne à mon fichier Global.asax, le message d'erreur suivant s'affiche:

CS1061: 'System.Web.Routing.RouteCollection' ne contient pas de définition pour 'IgnoreRoute' et aucune méthode d'extension 'IgnoreRoute' n'accepte un premier argument de type 'System.Web.Routing.RouteCollection' (vous manque-t-il un utilisant une directive ou une référence d'assemblage?)

J'ai importé l'espace de noms System.Web.Routing , des idées?

Était-ce utile?

La solution

Vous n'avez pas besoin de faire référence à ASP.NET MVC. Vous pouvez utiliser le StopRoutingHandler qui implémente IRouteHandler comme alors:

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

Cela fait partie de .NET 3.5 SP1 et ne nécessite pas MVC. La méthode IgnoreRoutes est une méthode d’extension de commodité qui fait partie d’ASP.NET MVC.

Autres conseils

Une vieille question, mais au cas où cela aiderait toujours quelqu'un, cela a fonctionné pour moi:

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

Le " Ignorer " Cette méthode existe, alors que dans ASP.NET standard, le paramètre "IgnoreRoute". la méthode semble ne pas être utilisée (c’est-à-dire ne pas utiliser MVC). Cela donnera le même résultat que le code de Haacked, mais sera un peu plus propre ...

Je voudrais juste ajouter que vous devez également vous assurer que l'ordre de votre règle IgnoreRoutes est dans le bon ordre, sinon votre première route sera appliquée en premier et votre IgnoreRoute sera bien ignoré.

MapRoute et IgnoreRoute sont des méthodes d'extension dans System.Web.Mvc: cet assemblage est-il correctement référencé?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top