背景
在ASP.NET MVC中,HtmlHelper的擴展方法RenderPartial為我們使用UserControl帶來了 極大的方便,當我們指定一個UserControl時,RenderPartial會在當前View文件夾下查找相應的 UserControl,如果沒有找到則會到Shared文件夾下查找。然後在使用RenderPartial方法有一些性能方面 的考慮,值得我們去關注。
設想有這樣一個場景,一篇文章有很多個評論,在頁面中我們需要呈 現出一個評論列表,自然我們會定義一個評論的UserControl,如下代碼所示:
Code 1:
<%@ 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 />
在頁面中呈現評論列表,代碼非常簡單,僅僅是遍歷所有的評論而已:
Code 2:
<div>
<%
foreach (var comment in Model.Comments)
{
Html.RenderPartial("CommentsItem", comment);
}
%>
</div>
運行後效果如下,可以看到 正確的輸出了評論: