Così ho un percorso come questo nella mia applicazione MVC 3 in esecuzione in IIS 7:MVC routing quando un file in realtà esiste nel percorso specificato
routes.MapRoute(
"VirtualTourConfig",
"virtualtour/config.xml",
new { controller = "VirtualTour", action = "Config" }
);
Il trucco è che un file esiste effettivamente a/virtualtour/config.xml. Sembra che la richiesta stia appena restituendo il file xml in quella posizione invece di colpire il percorso, che elabora l'XML, apporta alcune modifiche e restituisce un XmlResult personalizzato.
Qualche suggerimento su come posso dire alla mia applicazione di raggiungere la rotta e non il file effettivo nel caso in cui il file esista su disco?
EDIT: Sembra che posso usare routes.RouteExistingFiles = true;
nel metodo RegisterRoutes di Global.asax a dire l'applicazione di ignorare i file su disco. Questo, tuttavia, imposta il flag a livello globale e interrompe molte altre richieste all'interno dell'applicazione. Ad esempio, desidero ancora chiamare /assets/css/site.css per restituire il file CSS senza dover impostare in modo specifico i percorsi per ogni asset statico. Quindi ora la domanda diventa, c'è un modo per farlo su una base per rotta?
Non credo ci sia un modo semplice per raggiungere questo obiettivo. Perché non sposti semplicemente il file statico nella cartella '~/App_Data'? –