我在IIS的MVC网站下有一个名为“Files”的虚拟目录。此目录与我的Views目录处于同一级别。当我从我的MVC应用程序链接到文件到我的Files目录下的文件时,我收到以下错误:
路径控制器 '/Files/Images/1c7f7eb8-5d66-4bca-a73a-4ba6340a7805.JPG' 未找到或未执行 一个IController。
它认为我的文件VD是一个控制器。如何在没有MVC干扰的情况下像普通VD一样访问我的文件?
感谢。
答案 0 :(得分: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
}
答案 1 :(得分:2)
ASP.Net首先查找目录然后尝试匹配控制器,所以你正在做的事情应该有效。您确定具有该名称的文件是否存在且可以访问?
答案 2 :(得分:1)
我认为您必须在Global.asax文件中添加对routes.Ignore()
静态路由的调用,以便.NET MVC知道忽略该请求: