А почему нельзя обрабатывать логику в контроллере?
Например, есть модель формы, где ее описываем, создаем правила валидации.
Есть контроллер, который рендерит нужную вьюху, в которую передается модель формы.
Пользователь видит вьюху и вводит данные в форме, они уходят в контроллер.
Там (в контроллере) логику обрабатываю, в зависимости от полученных данных либо снова рендерю что-то на экран, либо произвожу иные вещи (тут может быть что угодно - запись в бд, вызов какой-нибудь функции или метода и т.п.)
Это получается неправильно с точки зрения канонов MVC?