部分视图和渲染部分视图有啥区别?
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,可以赋值给变量。
性能方面的渲染部分更好,因为它直接写入输出流。
当然你可以在网上找到很多参考资料,并在堆栈溢出内阅读
【讨论】:
以上是关于部分视图和渲染部分视图有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章