部分视图和渲染部分视图有啥区别?

Posted

技术标签:

【中文标题】部分视图和渲染部分视图有啥区别?【英文标题】:What is difference between partial and render partial view ?部分视图和渲染部分视图有什么区别? 【发布时间】:2016-11-01 05:09:52 【问题描述】:

我是 asp.net MVC 的新手,请告诉我应该在哪里使用局部视图以及应该在哪里渲染局部视图。在此先感谢

【问题讨论】:

html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction的可能重复 【参考方案1】:

This link might help.

Html.RenderPartial

    此方法结果将直接写入 HTTP 响应流,意味着它使用与当前网页/模板中使用的相同 TextWriter 对象。 此方法返回 void。 使用简单,无需创建任何操作。 当局部视图中显示的数据已经在相应的视图模型中时,RenderPartial 方法很有用。 例如:在博客中显示文章的 cmets,我们希望使用 RenderPartial 方法,因为带有 cmets 的文章信息已经填充到视图模型中。 @Html.RenderPartial("_Comments"); 此方法比 Partial 方法更快,因为它的结果直接写入响应流,因此速度更快。

Html.Partial

    将部分视图呈现为 HTML 编码的字符串。 此方法结果可以存储在变量中,因为它返回字符串类型值。 使用简单,无需创建任何操作。 与 RenderPartial 方法一样,当局部视图中显示的数据已经在相应的视图模型中时,Partial 方法也很有用。 例如:在博客中显示文章的 cmets,您可以使用 Partial 方法,因为带有 cmets 的文章信息已经填充到视图模型中。 @Html.Partial("_Comments")

【讨论】:

【参考方案2】:

这两个辅助方法都用于渲染局部视图

在 razor view @Html.Partial("_student", items)Html.RenderPartial("_student", items); 中都有不同的语法,因为渲染部分返回 void 并且输出直接写入输出流,所以它的语法与 Partial 不同。

视图中的网络语法 <%:Html.Partial("_student") %><% Html.RenderPartial("_student"); %>

部分返回MVCHtmlString,可以赋值给变量。

性能方面的渲染部分更好,因为它直接写入输出流。

当然你可以在网上找到很多参考资料,并在堆栈溢出内阅读

【讨论】:

以上是关于部分视图和渲染部分视图有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

关于ASP.NET MVC部分视图渲染问题。

Laravel:使用 AJAX 请求渲染部分视图

根据 ajax 请求渲染多个刀片视图部分

在服务端渲染部分视图或在客户端发送 json 数据和渲染模板

在菜单选择上渲染部分视图

如何在控制器中为 Json 渲染部分视图