ASP.NET MVC认为我的虚拟目录是一个控制器
我在IIS中的MVC网站下有一个名为“文件”的虚拟目录。此目录与“我的视图”目录处于同一级别。当我将MVC应用程序中的文件链接到文件目录下的文件时,出现以下错误: 路径控制器 “/Files/Images/1c7f7eb8-5d66-4bca-a73a-4ba6340a7805.JPG” 未找到或未实现 I控制器 它认为我的文件是一个控制器。我如何像普通VD一样访问文件而不受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
谢谢。我认为您必须在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}”)代码>解决了我遇到的一个问题: