2010-06-30 55 views
9

我正在处理部分静态内容和部分MVC的网站。该网站的根目录是index.html,我将所有控制器明确路由并忽略所有html文件。但是,当您点击网站的根目录时,它会尝试将其路由。我如何告诉路由引擎忽略网站的根目录? www.mysite.com不应该路由,而是去index.html。这里是我的路由配置:获取MVC忽略路由到网站根目录

  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 

回答

3

其中一条路由仍在{}中,它试图解析根。

+0

嗨,是你上面的代码正确利用这最后的想法? – JasonMenny 2011-09-29 14:06:33

16

我相信你的意思是当你访问网站上的/时,你不想使用MVC,而是显示一个静态页面。为了达到这个目的,你需要告诉MVC忽略这条路线并让webforms处理它。当Webforms获得请求/时,它会告诉你/index.html

简单地增加在此之前您的路线应该工作:

routes.IgnoreRoute(""); 
+0

添加此忽略路线不起作用。我得到:* HTTP错误403.14 - 禁止 Web服务器配置为不列出此目录的内容。* – Organic 2016-06-09 14:17:21

+0

@有机在这种情况下,检查您的默认文档。要么你没有index.html或类似的东西,或者它没有在IIS中设置。在IIS中转到您的网站并查看“默认文档”属性。如果其中一个文件存在,它会显示该文件,否则您会收到此警告。 – 2016-06-14 08:19:22