技术开发 频道

RenderPartial性能优化

  【IT168 技术】在ASP.NET MVC中,HtmlHelper的扩展方法RenderPartial为我们使用UserControl带来了极大的方便,当我们指定一个UserControl时,RenderPartial会在当前View文件夹下查找相应的UserControl,如果没有找到则会到Shared文件夹下查找。然后在使用RenderPartial方法有一些性能方面的考虑,值得我们去关注。

  设想有这样一个场景,一篇文章有很多个评论,在页面中我们需要呈现出一个评论列表,自然我们会定义一个评论的UserControl,如下代码所示:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Comment>" %>
<%@ Import Namespace="TerryLee.MvcPerformance01.Models" %>
<p>
    ID:
<%=Model.ID %> <br />
    Author:
<%=Model.Author %> <br />
    Description:
<%= Model.Description %>
</p>
<hr />

  在页面中呈现评论列表,代码非常简单,仅仅是遍历所有的评论而已:

<div>
  
<%
     foreach
(var comment in Model.Comments)
     {
         Html.RenderPartial("CommentsItem", comment);
     }
  %
>
</div>

  运行后效果如下,可以看到正确的输出了评论:

图1  运行结果
0