Domanda

Sto utilizzando il framework .NET 3.5 SP1 e ho implementato il routing URL nella mia applicazione. Stavo ricevendo errori javascript:

Errore: Impossibile caricare il framework lato client ASP.NET Ajax.
Risorsa interpretata come script ma trasferita con tipo MIME text / html.
Errore di riferimento: impossibile trovare la variabile: Sys

Il che credo sia perché il mio routing sta rilevando i file microsoft axd e non inviando correttamente il javascript. Ho fatto qualche ricerca e ho scoperto che potevo usare Routes.IgnoreRoute , che dovrebbe permettermi di ignorare l'ascia come di seguito:

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

Ma quando aggiungo quella linea al mio Global.asax ottengo questo errore:

CS1061: 'System.Web.Routing.RouteCollection' non contiene una definizione per 'IgnoreRoute' e non è stato trovato alcun metodo di estensione 'IgnoreRoute' che accetta un primo argomento di tipo 'System.Web.Routing.RouteCollection' (ti manca un usando la direttiva o un riferimento di assembly?)

Ho importato lo spazio dei nomi System.Web.Routing , qualche idea?

È stato utile?

Soluzione

Non è necessario fare riferimento a ASP.NET MVC. Puoi utilizzare StopRoutingHandler che implementa IRouteHandler come così:

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

Fa parte di .NET 3.5 SP1 e non richiede MVC. Il metodo IgnoreRoutes è un metodo di estensione di convenienza che fa parte di ASP.NET MVC.

Altri suggerimenti

Una vecchia domanda, ma nel caso in cui aiuti ancora qualcuno, questo ha funzionato per me:

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

Il " Ignora " esiste il metodo, mentre in ASP.NET standard il "quot" IgnoreRoute " il metodo sembra non (cioè non usare MVC). Ciò otterrà lo stesso risultato del codice di Haacked, ma è leggermente più pulito ...

Vorrei solo aggiungere che devi anche assicurarti che l'ordine della tua regola IgnoreRoutes sia nell'ordine corretto altrimenti il ??tuo primo percorso verrà applicato per primo e IgnoreRoute sarà ... ben ignorato.

MapRoute e IgnoreRoute sono metodi di estensione in System.Web.Mvc --- si fa riferimento correttamente a quell'assieme?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top