Как и во всех вещах программирования, мы должны быть прагматичными. Представление должно содержать только логику представления. Эта логика может быть очень простой или довольно сложной. Пока эта логика обрабатывает только то, что отображается на экране, печатается в отчете и т. Д.
Контроллер должен действовать и извлекать / обновлять объекты внутри Модели, выбирать соответствующий Просмотр и передавать ему информацию, чтобы он мог отображаться.
Какую информацию вы передаете? Возможно подмножество модели. Вы можете создать новый класс, содержащий только ту информацию, о которой должно знать представление, или просто передать модель и убедиться, что у вас есть доступ только к соответствующим данным. В любом случае, представление должно быть свободно запрашивать это переданное в модели, чтобы иметь возможность отображать представление.
Суть спора в том, если вы, с точки зрения, сможете обновить модель напрямую, минуя контроллер. Вот тут-то и прагматичная сторона. Я думаю, что есть случаи, которые могут потребовать непосредственного обновления модели. Особенно, если вы можете использовать привязки данных. Вы можете назначить текстовое поле свойству модели и автоматически выполнить обновление. Если существует множество простых настроек свойств, этот подход может сохранить кучу кода в контроллере. MVC - это не набор правил, установленных в камне. Это правила, которые при правильном использовании могут дать лучший код, но при слишком строгом использовании могут привести к боли и страданиям.
Будьте прагматичны!