путь контроллера, не найденный для статических изображений? asp.net mvc проблема маршрутизации?

Мне сохранили папку изображения в ~/Content/Images/

Я загружаю эти изображения через

<img src="/Content/Images/Image.png" />

Недавно, изображения не загружаются, и я получаю следующие ошибки в своем журнале ошибок. То, что является странным, - то, что некоторая прекрасная загрузка изображений, в то время как другие не загружаются.

У кого-либо есть какая-либо идея что не так с моими маршрутами? Я пропускаю проигнорировать маршрут для/Content/папки?

Я также получаю ту же ошибку для favicon.ico и набора других файлов изображений...

<Fatal> -- 3/25/2010 2:32:38 AM -- System.Web.HttpException: The controller for path '/Content/Images/box_bottom.png' could not be found or it does not implement IController.
at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(Type controllerType)
at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Мои текущие маршруты похожи на это:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

        routes.MapRoute(
            "ControllerDefault",                                              // Route name
            "{controller}/project/{projectid}/{action}/{searchid}",                           // URL with parameters
            new { controller = "Listen", action = "Index", searchid = "" }  // Parameter defaults
        );

Спасибо!

14
задан rksprst 25 March 2010 в 04:26
поделиться

5 ответов

Я бы вставил еще один игнорируемый маршрут сразу под первым.

routes.IgnoreRoute("Content/Images/{*pathInfo}");
6
ответ дан 1 December 2019 в 14:32
поделиться

Вам нужно объявить менее специфичные маршруты к низу:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
    "ControllerDefault",
    "{controller}/project/{projectid}/{action}/{searchid}",
    new { controller = "Listen", action = "Index", searchid = "" }
);

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

Но я не думаю, что проблема здесь в этом. Из исключения следует, что веб-сервер, выполняющий это приложение, имеет подстановочное сопоставление с фильтром aspnet_isapi, что означает, что все файлы будут ассоциированы со средой выполнения ASP.NET, даже статические файлы.

1
ответ дан 1 December 2019 в 14:32
поделиться

У вас нет routes.RouteExistingFiles = true; где-нибудь вы?

0
ответ дан 1 December 2019 в 14:32
поделиться

Если вы посмотрите на представление обозревателя решений, я предполагаю, что ваша папка Content находится в корне проекта вместе с папкой для контроллеров и представлений. Попытка изменить src вашего изображения, как показано ниже ...

<img src="../../Content/Images/Image.png" />
4
ответ дан 1 December 2019 в 14:32
поделиться
<img src="<%= Url.Content("~/Content/Images/Image.png")%>" alt="does this work?" />
2
ответ дан 1 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: