2010-06-04 70 views
2

我嘗試在Visual Studio 2010和 .NET Framework 4.0中使用MapPageRoute功能和asp.net webforms應用程序。asp.net Webforms MapPageRoute的優先順序

我注意到的是,如果我定義了一個名爲「Default」的頁面路由,如下面的 以及項目中存在Default.aspx頁面,那麼路由 不起作用。

routes.MapPageRoute("Default", "default.aspx", "~/Page2.aspx"); 
routes.MapPageRoute("Test", "test.aspx", "~/Page2.aspx"); 

如果我在項目Default_1.aspx改變Default.aspx的名稱,然後 路由工作正常。

似乎有一些優先順序正在進行。有沒有辦法讓 我的路由定義首先被評估,所以我不必將我的頁面重命名爲 使用路由引擎?

回答

3

RouteCollection上有一個屬性,名爲RouteExistingFiles,默認設置爲false。這解釋了爲什麼默認路由不起作用,如果你有一個default.aspx頁面。

如果您在代碼行之前插入routes.RouteExistingFiles = true;,則會使路由優先。我不是100%確定它是否會回落到文件,如果它不能路由 - 我想這取決於你設置的路線...

+1

設置routes.RouteExistingFiles =真的伎倆。謝謝。 – moke 2010-06-07 02:45:54