Сравнение 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
Дата создания : 21 сентября 2022 г.