我正在向现有站点添加一些 MVC 功能(FWIW,其中大部分位于经典 ASP 中)。因此,我需要保留默认路由到 ~/default.asp(至少 - 最好是 IIS 中指定的默认文档)。
有没有办法在 RegisterRoutes 中写入路由,以便请求站点的根目录(例如,http://localhost http://localhost, http://本地主机/ http://localhost/, or http://localhost/default.asp http://localhost/default.asp)会直接获取默认页面,而不是尝试查找控制器/操作?或者我是否需要编写自己的 HttpModule 来过滤它并防止它到达 MvcHandler (如这个博客 http://blog.davidwalker.org/2008/08/aspnet-mvc-and-the-default-route/)?
顺便说一句,我已经用 google 搜索过这个,但大多数点击都是针对 MVC 版本 1 或更早版本的,并且默认路由似乎在版本 2 中发生了变化(即,不再有 default.aspx 重定向到 ~/Home),所以它们不直接适用。即便如此,那里的人也没有解决这个问题。
Maarten Balliauw 写了一篇关于混合 ASP.NET Webforms 和 ASP.NET MVC http://www.packtpub.com/article/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 处理它们。前提是/
将指向/default.asp
在网络表单中,这应该可行。不过,我还没有测试过这个...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)