Перейти к содержанию

Сравнение Razor Pages и MVC в ASP.NET Core

В чем разница между Razor Pages и MVC, и что и когда следует выбирать? Если вы новичок в ASP.NET Core, вот простой совет: используйте Razor Pages для создания приложений с отрисовкой на стороне сервера, и фреймворк MVC для веб-API.
Для понимания нюансов кратко взглянем на сам фреймворк ASP.NET Core MVC и подробнее разберем различия между ним и Razor Pages

Контроллеры MVC в ASP.NET Core

Вместо PageModel и обработчика страницы MVC использует концепцию контроллеров и методов действия, что почти полностью совпадает с аналогами в Razor Pages. С другой стороны, контроллеры MVC используют явные модели представления для передачи данных в представления, а не предоставляют данные как свойства PageModel.
С точки зрения архитектуры MVC и Razor Pages по сути эквивалентны.

Преимущества Razor Pages

В MVC контроллер может иметь несколько методов действия. Каждое действие обрабатывает разные запросы и генерирует разные ответы. Группировка действий довольно произвольна, что может привести к раздуванию контроллеров (и увеличению числа зависимостей в них).
Еще один минус контроллеров MVC — их типичная организация в проекте. Традиционно классы в таком проекте группируются по типу (контроллер, представление, модель представления), тогда как в Razor Page группировка идёт по функициям — всё, связанное с определенной страницей, находится в одном месте.
Также эта разница дает следующее преимущество — каждая страница превращается в отдельный класс, тогда как в MVC страница — это действие, метод контроллера.
Преимущества Razor Pages особенно заметны на сайтах, на которых в основном отображаются некие статические данные.

Когда выбирать контроллеры MVC вместо Razor Pages

Вот несколько таких сценариев.

  • когда не нужна отрисовка представлений — то есть веб-API
  • когда конвертируется существующее MVC приложение в ASP.NET Core — трудозатраты на изменение кода не стоят возможных выигрышей
  • когда вы делаете много частичных обновлений страницы используя Javascript

Последнее обновление : 14 апреля 2023 г.
Дата создания : 21 сентября 2022 г.

Комментарии

Комментарии