MVC 3 Html.RenderPartial против Html.Partial - PullRequest
5 голосов
/ 08 марта 2012

В этой статье говорится

В некоторых случаях вы можете отойти в сторону и написать непосредственно в поток ответов HTTP, а не частичное представление отобразить результаты (для представления / представления используется MvcHtmlString / StringWriter)

Используйте Html.RenderPartial для потоковой передачи изображений или других элементов, которые медиацентричный или где очень важно быстрое время загрузки.

Какие издержки вводит MvcHtmlString/StringWriter? Есть ли недостатки в использовании Html.RenderPartial все время, если есть меньше накладных расходов?

Я не смог найти ответы на MSDN:

http://msdn.microsoft.com/en-us/library/ee402902.aspx

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.renderpartialextensions.renderpartial.aspx

Ответы [ 3 ]

5 голосов
/ 08 марта 2012

Html.RenderPartial быстрее, чем Html.Partial, поскольку RenderPartial дает быстрый ответ на вывод.

Вот некоторые ссылки: -

http://devlicio.us/blogs/derik_whittaker/archive/2008/11/24/renderpartial-vs-renderaction.aspx

В чем разница (если есть) между Html.Partial (вид, модель) и Html.RenderPartial (вид, модель) в MVC2?

3 голосов
/ 08 мая 2012

Недостатком является то, что вы должны писать менее читаемый код. с помощью Html.Render вы пишете (1):

@Html.Partial("ViewName", modelObj)

в то время как с Html.RenderPartial вы должны написать

@{ Html.RenderPartial("ViewName", modelObj); }

или (2)

Html.RenderPartial("ViewName", modelObj);

в зависимости от синтаксического контекста (синтаксис 2 вы будете использовать в синтаксических блоках, таких как if или foreach, а в синтаксисе 1. Это повлияет на то, как вы будете писать методы расширения для класса HtmlHelper, и как вы будете их использовать.

1 голос
/ 08 марта 2012

Единственный «недостаток» RenderPartial в том, что у вас нет возможности манипулировать результатом перед рендерингом. Поэтому, если вы хотите проверить вывод, вы можете использовать Html.Partial, сохранить результат и т. Д. Если честно, я не могу придумать вескую причину для этого, но это не значит, что ее нет.

Так что, если вам не нужен доступ к этому «шву», нет недостатка в вызове RenderPartial.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...