Почему Castle Windsor пытается преобразовать мои папки «Content» и «Scripts» в качестве контроллера?
Я создал приложение ASP.NET MVC и пытаюсь использовать Castle Windsor в качестве своего IOC
Однако, когда контроллеры пытаются решить, я получаю «Content» и «Scripts» в параметр «controllerName» вCreateController(RequestContext requestContext, string controllerName)
метод. Излишне говорить, что это не контроллеры. Похоже, они являются папками веб-сайта
Почему он пытается зарегистрировать их в качестве контроллеров?
Как мне игнорировать эти папки ??
Спасибо
исключение из WindsorControllerFactory
Из-за невозможности опубликовать изображение, я должен описать его - в основном это просто говорит
'Контроллер содержимого не найден'
Global.asax.cs
public static IIocContainer Ioc;
protected void Application_Start()
{
InitialiseIocContainer();
RegisterViewEngine(ViewEngines.Engines);
RegisterRoutes(RouteTable.Routes);
StartProfiling();
}
private void InitialiseIocContainer()
{
IWindsorContainer _container = new WindsorContainer();
var controllerTypes = typeof (GidgetController).Assembly.GetTypes();
foreach (var controllerType in controllerTypes.Where((t=>typeof(IController).IsAssignableFrom(t))))
{
_container.AddComponentLifeStyle(controllerType.Name.ToLower(), controllerType, LifestyleType.Transient);
}
_container.AddComponent("a",typeof(IGidgetService), typeof(GidgetService));
_container.AddComponent("b",typeof(IGidgetRepository), typeof(GidgetRepository));
_container.AddComponent("c",typeof(IGidgetValidator), typeof(GidgetValidator));
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(_container));
}
windsorControllerFactory.cs
public IController CreateController(RequestContext requestContext, string controllerName)
{
try
{
controllerName = controllerName.ToLower() + "controller";
var controller = _container.Resolve<IController>(controllerName);
return controller;
}
catch (ComponentNotFoundException)
{
throw new HttpException(404, string.Format("The {0} controller was not found", controllerName));
}
}