У меня есть виртуальный каталог под моим веб-сайтом MVC в IIS, который называется «Файлы». Этот каталог находится на том же уровне, что и мой каталог Views. Когда я связываю файл из моего приложения MVC с файлом в моем каталоге Files, я получаю следующую ошибку:
Контроллер для пути '/ Files / Images / 1c7f7eb8-5d66-4bca-a73a -4ba6340a7805.JPG 'не найден или не реализует IController.
Он считает, что мой Files VD является контроллером. Как мне получить доступ к моим файлам, как к обычному виртуальному диску, без вмешательства 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.Ignore()
статического маршрута в файл Global.asax, чтобы .NET MVC знал, что нужно игнорировать запрос: