Asp.net mvc 3 MVC 3 Html.RenderPartial vs Html.Partial

Asp.net mvc 3 MVC 3 Html.RenderPartial vs Html.Partial,asp.net-mvc-3,Asp.net Mvc 3,州 在某些情况下,你可能想站到一边写点东西 直接发送到HTTP响应流,而不是具有部分视图 呈现结果(部分/视图使用MvcHtmlString/StringWriter) 将Html.RenderPartial用于流式图像或其他 以媒体为中心,或者更快的下载时间非常重要 MvcHtmlString/StringWriter引入了什么开销?如果开销较小,那么一直使用Html.RenderPartial是否有缺点 我在MSDN上找不到答案: RenderPartial唯一的“缺点”是,在渲染之前,您

在某些情况下,你可能想站到一边写点东西 直接发送到HTTP响应流,而不是具有部分视图 呈现结果(部分/视图使用MvcHtmlString/StringWriter)

将Html.RenderPartial用于流式图像或其他 以媒体为中心,或者更快的下载时间非常重要

MvcHtmlString/StringWriter
引入了什么开销?如果开销较小,那么一直使用
Html.RenderPartial
是否有缺点

我在MSDN上找不到答案:

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


因此,除非您需要访问该“seam”,否则调用RenderPartial没有任何不利之处。

Html.RenderPartial比Html.Partial更快。由于RenderPartial的存在,可以快速响应输出

以下是一些参考资料:-


缺点是您必须编写可读性较差的代码。 使用Html.Render编写(1):

使用Html.RenderPartial时,您必须编写

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

根据语法上下文(语法2,您将在if或foreach等语法块下使用,而语法1)。 这将影响您为HtmlHelper类编写扩展方法的方式,以及您将如何使用它们

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