带MVC3的Html.Partial或Html.RenderPartial?

时间:2011-09-10 11:18:59

标签: asp.net-mvc asp.net-mvc-3

即使看到以下解释,我也很困惑。

<div>
  @Html.Partial("_FeaturedProduct")
</div>

部分视图可以在布局页面内呈现(或者如果使用MVC 2/3 w / ASPX,主页面)以及常规视图。

在某些情况下,您可能希望退出并直接写入HTTP Response流,而不是使用部分视图呈现结果(partials / views使用MvcHtmlString / StringWriter)。为此,请使用Html.RenderPartial帮助程序。

<div>
  @Html.RenderPartial("_FeaturedProduct")
</div>

有人能告诉我这是什么意思吗?在哪些情况下我可能想直接写入HTTP响应等。如果我的部分视图只包含这样一行:

<h1>Hello</h1>

我应该使用哪种?为什么?如果我使用另一个会怎么样?

以下让我更加困惑:“使用Html.RenderPartial来传输图像或其他以媒体为中心的元素或者下载时间非常重要的元素。”

1 个答案:

答案 0 :(得分:6)

请参阅下面的回复。

  

唯一的区别是Partial返回一个MvcHtmlString,并且必须   在里面调用&lt;%=%&gt;,而RenderPartial返回void并呈现   直接到视图。

     

如果查看源代码,您会看到它们都调用了   相同的内部方法,传递StringWriter以使其呈现为。

     

如果要查看,保存或操作,请调用Partial   生成HTML而不是将其写入页面。

What is the difference (if any) between Html.Partial(view, model) and Html.RenderPartial(view,model) in MVC2?