Mam więc trasą jak to w moim MVC 3 aplikacji działających pod kontrolą IIS 7:MVC routingu, gdy plik rzeczywiście istnieje w podanej lokalizacji
routes.MapRoute(
"VirtualTourConfig",
"virtualtour/config.xml",
new { controller = "VirtualTour", action = "Config" }
);
Sztuką jest to, że plik rzeczywiście istnieje w/VirtualTour/config.xml. Wygląda na to, że żądanie polega właśnie na zwrocie pliku xml w tej lokalizacji, zamiast uderzać w trasę, która przetwarza kod XML, wprowadza pewne zmiany i zwraca niestandardowy XmlResult.
Jakieś sugestie, w jaki sposób mogę poinformować moją aplikację, aby trafiła na trasę, a nie faktyczny plik w przypadku, gdy plik istnieje na dysku?
EDIT: Wydaje się, że mogę używać routes.RouteExistingFiles = true;
w metodzie RegisterRoutes z Global.asax powiedzieć aplikację ignorować plików na dysku. To jednak ustawia flagę globalnie i powoduje wiele innych żądań w aplikacji. Na przykład nadal chcę wywoływać plik /assets/css/site.css, aby zwrócić plik CSS bez konieczności konfigurowania tras dla każdego zasobu statycznego. Więc teraz pojawia się pytanie, czy istnieje sposób, aby to zrobić na podstawie trasy?
I nie sądzę, że istnieje prosty sposób na osiągnięcie tego celu. Dlaczego po prostu nie przeniesiesz pliku statycznego do folderu '~/App_Data'? –