Я получил прототип приложения, созданного с помощью Asp.Net MVC4. В настоящее время он заменяет контроллер по умолчанию factory на пользовательский, используя NInject, ServiceLocator и все.
Проблема заключается в том, что, заменив контроллер по умолчанию factory, запросы к файлам JS обрабатываются так, как если бы это был законный запрос для контроллера и действия.
Итак, глядя на шаблон по умолчанию, созданный Visual Studio, настройка маршрута выглядит так:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Посмотрев, я спрашиваю себя: почему запрос на "/Scripts/jquery.js" не интерпретируется Asp.Net MVC? Я имею в виду, почему он не думает, что "Script" - это контроллер, а "jquery.js" - это действие?
Поскольку проект работает, если я отключу переопределение контроллера factory, я могу только предположить, что по умолчанию для этого типа проверки отвечает factory по умолчанию. И это означало бы, что "/Scripts/jquery.js" действительно передается контроллеру factory, чего я действительно не знал.
Может ли кто-нибудь пролить свет на это?
Какое лечение следует делать при переопределении контроллера factory, чтобы избежать таких проблем?