MVC 3 Html.RenderPartial vs Html.Partial

时间:2012-03-08 19:43:02

标签: asp.net-mvc-3

This article

  

在某些情况下,您可能希望退一步并撰写   直接到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

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:3)

缺点是你必须编写不太可读的代码。 用Html.Render你写(1):

@Html.Partial("ViewName", modelObj)

使用Html.RenderPartial时你必须写

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

或(2)

Html.RenderPartial("ViewName", modelObj);

取决于语法上下文(语法2将在if或foreach等语法块下使用,而语法1。 这将影响您为HtmlHelper类编写扩展方法的方式,并且您将使用它们。

答案 2 :(得分:1)

RenderPartial的唯一“缺点”是你没有机会在渲染之前操纵结果。因此,如果你想检查输出你可以使用Html.Partial并存储结果等。说实话,我想不出一个很好的理由这样做,但并不意味着没有。

因此,除非你需要访问那个“接缝”,否则调用RenderPartial没有任何缺点。