2010-04-28 70 views
8

我有一個虛擬目錄在IIS下我的MVC網站稱爲「文件」。該目錄與我的Views目錄處於同一級別。當我從我的MVC應用程序鏈接到文件目錄下的文件時,出現以下錯誤:ASP.NET MVC認爲我的虛擬目錄是一個控制器

The controller for path '/Files/Images/1c7f7eb8-5d66-4bca-a73a-4ba6340a7805.JPG' was not found or does not implement IController.

它認爲我的文件VD是控制器。如何在沒有MVC干擾的情況下像普通VD一樣訪問我的文件?

謝謝。

回答

2

ASP.Net首先查找目錄,然後嘗試匹配控制器,所以你在做什麼應該工作。您確定具有該名稱的文件存在且可訪問嗎?

+1

回收IIS,一切正常。謝謝。 – kmehta 2010-04-28 15:30:25

23

註冊路由時,請嘗試添加以下忽略規則。

public static void RegisterRoutes(RouteCollection routes) 
      { 
       /* Ignore static content, see 
       http://weblogs.asp.net/rashid/archive/2009/04/03/asp-net-mvc-best-practices-part-2.aspx 
       */ 
       routes.RouteExistingFiles = false; 
       routes.IgnoreRoute("Content/{*pathInfo}"); 
       routes.IgnoreRoute("Scripts/{*pathInfo}"); 
       routes.IgnoreRoute("Styles/{*pathInfo}"); 
       routes.IgnoreRoute("{*favicon}", 
        new { favicon = @"(.*/)?favicon.([iI][cC][oO]|[gG][iI][fF])(/.*)?" }); 

       //Ignore handlers and resources 
       routes.IgnoreRoute("{resource}.ashx/{*pathInfo}"); 
       routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

       // your routes go here 
      } 
+0

就是這樣。 – 2010-04-28 14:45:53

+0

我知道這是老派,但我也加了'routes.IgnoreRoute(「App_Themes/{* pathInfo}」);'這解決了我遇到的問題:http://stackoverflow.com/questions/21268124/getting-一個錯誤 - 服務 - 圖片 - 從 - 應用主題 - 當 - 使用 - 預編譯 – 2014-01-21 21:49:16