Отсутствует регистрация ContentController в asp.net mvc при использовании пользовательской ControllerFactory с единицей - PullRequest
0 голосов
/ 08 февраля 2012

Я использую фабрику пользовательских контроллеров с Unity для создания экземпляров контроллеров.Моя фабрика выглядит так:

public class UnityControllerFactory : DefaultControllerFactory
{

    public override IController CreateController(RequestContext requestContext, string  controllerName)
    {            
        return IoC.Container.Resolve<BaseController>(controllerName + "Controller");
    }

.... 

Когда я отлаживаю этот код, он пытается разрешить ContentController (controllerName == "Content"), который, конечно, не зарегистрирован в моемфайл конфигурации Unity.Я пытался найти, существует ли где-нибудь в System.Web.MVC ContentController , но я его не нашел.

Может кто-нибудь объяснить мне, почему эта фабрика пытается решить эту проблему?контроллер?

спасибо

1 Ответ

1 голос
/ 08 февраля 2012

Это предположение, но похоже, что статический контент с вашего сайта в папке Content (например, изображения, CSS и т. Д.) Подается через MVC, а это не так.

Чтосервер вы используете?Если вы используете IIS 7 или IIS Express, он должен использовать управляемый конвейер, и поэтому запросы этих типов не должны даже доходить до среды выполнения MVC.

Попробуйте углубиться в экземпляр requestContext, чтобы увидеть, что именнозапрашивает этот контроллер.

...