Тонкая настройка asp.net mvc

Мне действительно нравится идея Fubu MVC "одна модель в одной модели". Контроллер будет выглядеть примерно так

public class MyController
    {
        public OutputModel MyAction(InputModel inputModel)
        {
            //..
        }
    }

и локатор службы будет автоматически заполнять все необходимые зависимости в конструкторе.

Это делает контроллер очень простым для тестирования.

Итак, мой вопрос: как бы вы настроили asp.net mvc для обеспечения такой простоты в контроллерах?

2 ответа

Решение

То, что вы ищете, это ControllerActionInvoker. Вы должны будете реализовать свою собственную и переопределить / взять на себя обработку большей части конвейерной работы, что ASP.NET MVC.

Для справки, ознакомьтесь с 2-частной записью Джонатона Картера о выполнении ControllerActionInvokers: http://lostintangent.com/2008/07/03/aspnet-mvc-controlleractioninvoker-part-1/

а также

http://lostintangent.com/2008/07/07/aspnet-mvc-controlleractioninvoker-part-2/

Кроме того, команда Oxite сделала это во втором выпуске Oxite, вы можете проверить их источник здесь:

http://oxite.codeplex.com/SourceControl/changeset/view/30544

Вот ссылка непосредственно на их реализацию ControllerActionInvoker: http://oxite.codeplex.com/SourceControl/changeset/view/30544

Никогда не копался глубоко внутри ASP.NET MVC, но я думаю, что пользовательские ModelBinder и ActionResult сделают эту работу.

Другие вопросы по тегам