2010-03-10 121 views
0

我想切換現有的WebForms應用程序以使用路由,並且希望分階段完成。但是,我遇到了一些問題與特定的路線:使用WebForms的ASP.Net路由

//I want to catch existing calls to .aspx pages, but force them through 
// a route, so I can eventually drop the .aspx extension 
new Route("{page}.aspx", new MyCustomRoute()); 

這是不工作,因爲調用[SomePage的]的.aspx永遠不會觸發這條路線...如果我改變路線看起來像這樣:

//Same thing sans .aspx extension 
new Route("{page}", new MyCustomRoute()); 

所有對[SomePage]的調用都被接收。有任何想法嗎?

+0

你的MyCustomRoute類是什麼樣的? – mark123 2010-03-10 04:24:29

+0

@ mark123 - 感謝您的關注,但我想我明白了。我覺得有一點愚蠢,以前沒有看到過這個屬性。我有點驚訝,但是MSDN文檔並沒有在它的「Routing for WebForms」例子的頂部以粗體字母的形式告訴你這個...... – Josh 2010-03-10 04:30:39

回答

2

好了,現在我覺得自己很蠢......

原來有名爲RouteExistingFilesRouteCollection類默認爲false這個小產權。顯然,ASP.Net路由在將它們轉換爲路由之前優先考慮現有文件,因此對現有頁面的任何調用顯然都不會由我的路由處理。將這個屬性設置爲true可以解決我的問題,儘管它可能會產生意想不到的副作用,但我仍然沒有意識到這一點。