2012-03-08 3 views
5

This article состоянияMVC 3 Html.RenderPartial против Html.Partial

Есть некоторые случаи, когда вы могли бы отойти в сторону и писать непосредственно в поток HTTP Response вместо того, частичный вид визуализации результатов (partials/views используют 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

ответ

1

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

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

3

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

@Html.Partial("ViewName", modelObj) 

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

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

или (2)

Html.RenderPartial("ViewName", modelObj); 

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

Смежные вопросы