Come ignorare il percorso in asp.net forma il routing dell'URL
-
07-07-2019 - |
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?
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?