ASP.net MVC - как представление получает доступ к модели? - PullRequest
7 голосов
/ 03 мая 2009

На всех диаграммах MVC, которые я видел, всегда есть связь между представлением и моделью, что указывает на то, что представление имеет доступ к модели.

Мне просто интересно: когда это применимо? На данный момент у меня есть действие контроллера, принимающее параметр из QueryString, запрашиваю модель, чтобы получить MyObjectViewData, а затем возвращаю View, передавая MyObjectViewData. По сути, у меня есть Контроллер между ними.

Кажется, это логичный подход, но он не соответствует предположению, что Model и View объединяют свои усилия.

В каких типичных ситуациях они взаимодействуют без контроллера?

1 Ответ

6 голосов
/ 03 мая 2009

В MVC (в сети) представление напрямую взаимодействует с моделью, визуализируя конкретный экземпляр сущности модели. Это только косвенно действует на Модель через контроллер. В не-веб-реализации вы можете использовать шаблон наблюдателя для регистрации обработчиков с элементами View, которые могут вызывать методы в модели, которые обновляют модель без взаимодействия с контроллером. ASP.NET MVC и другие веб-реализации более слабо связаны, чем не-веб-реализации. На мой взгляд, это хорошая вещь. Это, как правило, приводит к гораздо более толстой реализации контроллера, и вы должны быть осторожны, чтобы не допустить разделения проблем между контроллером и моделью.

Веб-реализации, вероятно, следует рисовать без косвенного соединения между моделью и представлением, поскольку вы не можете реально общаться между ними без контроллера. Я полагаю, можно утверждать, что веб-служба может обеспечить это соединение, но я бы посчитал, что это просто еще одна форма контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...