【问题标题】:Getting MVC default route to go to ~/default.asp获取 MVC 默认路由到 ~/default.asp
【发布时间】:2010-06-10 13:38:55
【问题描述】:

我正在将一些 MVC 功能添加到现有站点(FWIW,其中大部分在经典 ASP 中)。因此,我需要保持默认路由到 ~/default.asp(至少 - 最好是 IIS 中指定的默认文档)。

有没有办法在 RegisterRoutes 中编写路由,以便对站点根目录的请求(例如,http://localhosthttp://localhost/http://localhost/default.asp)将直接获取默认页面,而不是尝试找到控制器/动作?还是我需要编写自己的 HttpModule 来过滤它并阻止它进入 MvcHandler(如this blog)?

顺便说一句,我已经在 Google 上搜索过了,但大多数点击都是针对 MVC 版本 1 或更早版本,并且默认路由似乎在版本 2 中发生了变化(即,没有更多的 default.aspx 重定向到 ~/Home) ,所以它们不能直接适用。即便如此,那里的那些也没有解决这个问题。

【问题讨论】:

    标签: asp.net-mvc-routing


    【解决方案1】:

    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,这应该可以工作。但是,我还没有测试过这个......

    【讨论】:

    • 我没有想到“IgnoreRoute("")”。谢谢
    猜你喜欢
    • 2011-04-29
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多