Шаблон проектирования MVC - кто загружает вид изначально - PullRequest
1 голос
/ 15 марта 2011

Этот запрос касается шаблона проектирования MVC в целом, а не ASP.net MVC Framework

Я понимаю в MVC (настольное приложение):

  1. Пользователь нажимает что-то в поле зрения
  2. это передается контроллеру для управления
  3. контроллер вносит некоторые изменения в модель
  4. Модель вызывает метод в представлении, который имеет логику для обновления пользовательского интерфейса

Вопросы вокруг них:

Q1) Может ли контроллер также изменять вид или только обновления модели? Вид?

Q2) Когда экран загружается впервые, модель не изменяется. Тогда, кто выбирает данные из модели и заполняет представление? View напрямую вызывает Model и заполняет сам себя. ИЛИ контроллер получает данные и передает их в метод просмотра.

Ответы [ 2 ]

0 голосов
/ 15 марта 2011

С модель-представление-контроллер :

  1. Пользователь каким-то образом взаимодействует с пользовательским интерфейсом.(например, нажимает кнопку мыши).
  2. Контроллер обрабатывает входное событие из пользовательского интерфейса, часто через зарегистрированный обработчик или обратный вызов, и преобразует событие в соответствующее действие пользователя, понятное для модели.
  3. Контроллер уведомляет модель о действиях пользователя, что может привести к изменению состояния модели.(Например, контроллер обновляет корзину покупок пользователя.)
  4. Представление запрашивает модель для создания соответствующего пользовательского интерфейса (например, представление перечисляет содержимое корзины покупок).Представление получает свои собственные данные из модели.В некоторых реализациях контроллер может выдавать общую инструкцию представлению для визуализации.В других случаях представление автоматически уведомляется моделью изменений состояния (Observer), которые требуют обновления экрана.
  5. Пользовательский интерфейс ожидает дальнейших взаимодействий с пользователем, что перезапускает цикл потока управления.
0 голосов
/ 15 марта 2011

В веб-контексте у вас всегда есть запрос из веб-браузера.Таким образом, логика работает, как описано выше, но вокруг нее есть оболочка:

  1. Браузер отправляет запрос на сервер и ожидает ответа
  2. Четыре шага выше.В этом случае пользовательский интерфейс также является внутренней моделью на сервере.
  3. Механизм визуализации создает новый пользовательский интерфейс (новую страницу HTML) из внутренней модели пользовательского интерфейса
  4. Сервер отправляет новыйHTML-документ обратно в браузер
  5. Браузер отображает результат
...