【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 />
<%@ 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>
<%
foreach (var comment in Model.Comments)
{
Html.RenderPartial("CommentsItem", comment);
}
%>
</div>
运行后效果如下,可以看到正确的输出了评论:

图1 运行结果