让MVC忽略到站点根目录的路由

时间:2010-06-30 15:27:30

标签: asp.net-mvc asp.net-mvc-routing

我正在开发一个部分静态内容和部分MVC的网站。该站点的根目录是index.html,我显式路由了所有控制器,忽略了所有html文件。但是,当您点击网站的根目录时,它会尝试路由它。如何告诉路由引擎忽略站点的根目录? www.mysite.com不应该被路由,而是转到index.html。这是我的路由配置:

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("*.html|js|css|gif|jpg|jpeg|png|swf");

        routes.MapRoute(
            "vendor_signup","{vendor}/signup/{action}/",
            new { controller = "Signup", action = "Index", vendor=UrlParameter.Optional}  // Parameter defaults
        );
        routes.MapRoute(
            "signup","signup/{action}/",
            new { controller = "Signup", action = "Index", vendor=Vendors.PCICentral}  // Parameter defaults
        );
//more routes below

2 个答案:

答案 0 :(得分:16)

我相信你的意思是当有人访问你网站上的/时,你不想使用MVC,而是显示静态页面。要实现这一点,您需要告诉MVC忽略该路由并让webforms处理它。然后,Webforms会在收到请求/index.html时向您显示/

只需在路线发挥作用之前添加:

routes.IgnoreRoute("");

答案 1 :(得分:3)

其中一条路径仍然在{},这使得它尝试解析根。