2009-11-10 91 views
1

我是一個絕對的ASP.NET初學者[MVC],所以這可能是一個愚蠢的問題。ASP.NET MVC路由服務在網站'頂級'的文件?

我想將一個url「http://localhost/clientaccesspolicy.xml」連接到特定的控制器操作。我怎麼能這樣做呢?

我也想知道如何靜態地爲這個URL提供一個文件。

(我能夠通過將它添加爲項目頂層的'內容'文件來靜態提供文件)。

+0

**注:**谷歌Chrome瀏覽器用戶。 XML文件得到了處理,但由於錯誤而無法在Chrome上顯示。我花了一個小時思考問題,但Chrome並未顯示該文件!啊! – gideon

回答

3

這應該做的,因此所有其他路線保持不變......而你並不需要爲這個控制器動作..

routes.RouteExistingFiles = true; 

routes.IgnoreRoute("clientaccesspolicy.xml"); 
+0

'routes.RouteExistingFiles = true'因爲我假設對css的請求而產生混亂,圖片也被重新路由。除此之外,忽略路線工作正常。 – gideon

2

你可以做到這一點並說:

routes.RouteExistingFiles = true; 

所有其他的路線之上。然後加:

routes.MapRoute(null, "clientaccesspolicy.xml", new { controller = "Foo", action = "Whatever" }); 

這應該工作,但我會警告你,這通常不是一個好主意。它所做的是告訴MVC路由系統停止提供與磁盤上相匹配的文件。這將包括你的圖像,CSS,腳本等。這將爲你做更多的工作,而不是我想象中的節省。