Согласно Брэду Уилсону, RenderAction является медленнее, чем RenderPartial.RenderAction vs RenderPartial performance
Однако, есть ли у кого-нибудь статистика, которая показывает разницу в производительности?
Я занимаюсь разработкой приложения, в котором страницы составлены из «Виджеты».
У меня есть два варианта:
Состав на уровне Просмотр
вызовов RenderAction для каждого виджета. Это самый простой способ, но это означает, что мы выполняем полный цикл MVC для каждого виджета.
Состав на уровне контроллера
Compose один ViewModel для страницы, которая содержит данные, необходимые для каждого виджета. Вызовите RenderPartial для каждого виджета. Это намного сложнее реализовать, но это означает, что мы сделаем только один цикл MVC.
Я тестировал вышеуказанные подходы с 3-мя различными виджетами на странице, а разница в времени рендеринга составляла 10-е секунды (вряд ли стоит беспокоиться).
Однако есть ли у кого-нибудь какие-либо результаты испытаний более конкретные, чем это, или, возможно, испытывают оба подхода?
+1 для предложения DisplayFor(). В настоящее время я делегирую ответственность за визуализацию виджета, поэтому я просто вызываю '@ widget.Render (Html)', и виджет может использовать 'HtmlHelper' для рендеринга. Тем не менее, я могу сделать эту делегацию факультативной и просто вызывать 'DisplayFor()' по умолчанию. –