Come faccio a impostare un controller universale in ASP.NET MVC?
-
21-08-2019 - |
Domanda
Lo so che non è forse nel vero spirito del MVC, ma voglio solo avere un unico controller globale che viene sempre chiamato, non importa cosa l'url assomiglia. Ad esempio, potrebbe essere:
http://myserver.com/anything /at/all/here.fun?happy=yes&sad=no#yippie
... e voglio che da passare al mio singolo controller. Ho intenzione di ottenere il percorso di programmazione e di gestire da solo - così, in altre parole, non voglio davvero alcun instradamento a tutti
.Ho aperto il file Global.asax e trovato dove sono registrate le rotte, ma io non so cosa mettere per il parametro 'url' in rottaMappa:
routes.MapRoute( "Global", "", new { controller = "Global", action = "Index" } );
Questa (con la 'url' vuoto) funziona bene per il percorso predefinito di '/', ma se lo cambio a qualsiasi cosa ottengo un file non trovato, quando lo voglio a gestire qualsiasi URL. Ho anche provato "*", ecc, ma che non ha funzionato.
Non sono riuscito a trovare alcun riferimento definitivo per il formato che il parametro URL prende.
Soluzione
Come su:
routes.MapRoute("Global", "{*url}", new { controller = "Global", action = "Index" } );
Altri suggerimenti
Non hai rimosso il default è vero? È necessario mantenere quello. Forse provare:
routes.MapRoute("Global", "/", new { controller = "Global", action = "Index" });