Паттерн проектирования MVC¶
Паттерн проектирования MVC — распространенный шаблон проектирования представлений с пользовательским интерфейсом. По сути, задача шаблона — отделение управления данными и манипулирования данными от их визуального представления.
Рассмотрим типичный запрос на примере запроса из предыдущего раздела.

В целом, порядок событий при ответе на запрос, следующий:
- контроллер (обработчик страницы Razor) получает запрос;
- в зависимости от запроса контроллер либо извлекает данные из модели приложения (используя внедренные сервисы), либо обновляет данные, образующие модель;
- контроллер выбирает представление для отображения и передает ему представление модели;
- представление использует данные, содержащиеся в модели, для создания пользовательского интерфейса.
Ключевым моментом здесь является то, что действия, выполняемые контроллером, выполняются с использованием модели приложения. Модель здесь содержит всю бизнес-логику приложения.
Note
Можно рассматривать каждый обработчик страниц Razor как мини-контроллер, ориентированный на одну страницу. Хотя существует много разных контроллеров, все они взаимодействуют с одной моделью приложения.
После обновления модели контроллеру необходимо решить, какой ответ сгенерировать — HTML-представление, перенаправление на другую страницу или сообщение об ошибке.
Одним из преимуществ независимости модели от представления является тестируемость, так как зависимость от конструкций пользовательского интерфейса вносит хрупкость в тесты.
Дата создания : 21 сентября 2022 г.