ASP.NET MVC认为我的虚拟目录是一个控制器

ASP.NET MVC认为我的虚拟目录是一个控制器,asp.net,asp.net-mvc,iis,virtual-directory,Asp.net,Asp.net Mvc,Iis,Virtual Directory,我在IIS中的MVC网站下有一个名为“文件”的虚拟目录。此目录与“我的视图”目录处于同一级别。当我将MVC应用程序中的文件链接到文件目录下的文件时,出现以下错误: 路径控制器 “/Files/Images/1c7f7eb8-5d66-4bca-a73a-4ba6340a7805.JPG” 未找到或未实现 I控制器 它认为我的文件是一个控制器。我如何像普通VD一样访问文件而不受MVC干扰 谢谢。我认为您必须在Global.asax文件中添加对routes.Ignore()静态路由的调用,以便.NE

我在IIS中的MVC网站下有一个名为“文件”的虚拟目录。此目录与“我的视图”目录处于同一级别。当我将MVC应用程序中的文件链接到文件目录下的文件时,出现以下错误:

路径控制器 “/Files/Images/1c7f7eb8-5d66-4bca-a73a-4ba6340a7805.JPG” 未找到或未实现 I控制器

它认为我的文件是一个控制器。我如何像普通VD一样访问文件而不受MVC干扰


谢谢。

我认为您必须在Global.asax文件中添加对
routes.Ignore()
静态路由的调用,以便.NET MVC知道忽略请求:


ASP.Net首先查找目录,然后尝试匹配控制器,因此您所做的工作应该可以正常工作。您确定具有该名称的文件存在并且可以访问吗?

注册路由时,请尝试添加以下忽略规则

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
            }

我知道这是老生常谈,但我也添加了
routes.IgnoreRoute(“App_Themes/{*pathInfo}”)解决了我遇到的一个问题: