所以我有這樣的路線在我的MVC 3應用IIS 7下運行:MVC路由當一個文件實際上是在指定的位置存在
routes.MapRoute(
"VirtualTourConfig",
"virtualtour/config.xml",
new { controller = "VirtualTour", action = "Config" }
);
的訣竅是,一個文件實際上存在於/ virtualtour/config.xml中。看起來這個請求只是返回該位置的xml文件,而不是點擊處理XML的路由,進行一些更改並返回一個自定義的XmlResult。
有關如何告訴我的應用程序能夠在磁盤上存在文件的情況下命中路徑而不是實際文件的任何建議?
編輯:似乎我可以在Global.asax的RegisterRoutes方法中使用routes.RouteExistingFiles = true;
來告訴應用程序忽略磁盤上的文件。然而,這會在全局範圍內設置標誌並在應用程序中打破許多其他請求。例如,我仍然希望調用/assets/css/site.css來返回CSS文件,而不必爲每個靜態資產專門設置路由。所以現在的問題是,有沒有辦法在每個路線的基礎上做到這一點?
我不認爲有一個簡單的方法來實現這一點。爲什麼不簡單地將靜態文件移動到`〜/ App_Data`文件夾? – 2011-01-13 15:55:46