2010-06-10 78 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