Самые простые примеры, которые я видел, помещают простую бизнес-логику в контроллер, но в идеале вы можете создать бизнес-уровень.
Хороший пример отделения бизнес-логики с помощью MVC3 можно увидеть в Microsoft.Проект Silk, который вы можете скачать здесь .В этом решении бизнес-логика разделена на другой проект, который отличается от проекта MVC.
В этом проекте вы можете видеть, что логика контроллера просто обрабатывает связь между представлениями и моделями представления (обратите внимание на модели представления).а не модели бизнес-уровня).Модели представления просто содержат информацию, которая будет передана представлениям, поэтому, если поле в представлении изменяется, поле в модели представления также изменяется.Проект также идет дальше, отделяя модели представлений от моделей представлений для передачи данных в представления и формируя модели для передачи данных обратно, но это вопрос выбора.
В этом проекте используется шаблон проектирования сценария транзакцииза свою бизнес-логику.Контроллер передает информацию на бизнес-уровень, используя свои собственные модели представлений, которые реализуют интерфейс в структуре шаблонов команд.Информация, передаваемая обратно из бизнес-уровня, осуществляется через собственные бизнес-модели бизнес-уровней.Я бы настоятельно рекомендовал вам взглянуть на этот проект, чтобы лучше понять, как достигается разделение.
Для дальнейшего изучения бизнес-уровней я бы также порекомендовал вам взглянуть на Wrox Enterprise.NET , где несколько глав дают хорошее обсуждение вариантов структурирования бизнес-уровня, первым из которых является Шаблон транзакции, используемый в проекте Silk.
Надеюсь, это поможет.