2010-06-10 116 views
2

我正在添加一些MVC功能到現有的網站(FWIW,其中大部分是經典的ASP)。因此,我需要保持默認路由到〜/ default.asp(至少 - 最好是在IIS中指定的默認文檔)。獲取MVC的默認路由去〜/ default.asp

是否有寫的RegisterRoutes的路由,這樣的網站的根目錄的請求(例如,http://localhosthttp://localhost/,或者http://localhost/default.asp)將直接獲得默認頁面,而不是試圖找到一個控制器/動作的方式?或者我需要編寫自己的HttpModule來過濾它,並避免它到達MvcHandler(如this blog)?

順便說一句,我已經使用了這個,但大多數命中是針對MVC版本1或更舊,並且默認路由在版本2中似乎已經改變(即,沒有更多的default.aspx重定向到〜/ Home ),所以它們不是直接適用的。即便如此,那裏的人也沒有解決這個問題。

回答

3

Maarten Balliauw寫了一個關於mixing ASP.NET Webforms and ASP.NET MVC的不錯藝術。你從文章所需要的東西是你告訴MVC不是路由某些航線的部分:

你的情況,這將是:

routes.IgnoreRoute("default.asp/{*pathInfo}"); // If you don't pass arguments just use default.asp 
routes.IgnoreRoute(""); 

這些忽略後,提供你的正常的MVC路線。這種方式MVC將忽略這些路線,並讓Webforms處理它們。假設/將在Webforms中指向/default.asp,這應該起作用。但是,我沒有測試過這個...

+0

我沒有想過「IgnoreRoute(」「)」。 Thansk – 2010-07-01 14:48:50