2010-06-30 56 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