2010-04-28 75 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