5

对给定任务使用 HtmlHelper 或 Partial 之间是否存在性能差异?

例如,我正在编写一个 HtmlHelper “控件”来在编辑器中创建一个具有以下签名的链接:

public static HtmlString RecordNameLink(
        this HtmlHelper htmlHelper, 
        string linkText, 
        string editActionName, 
        object editRouteValues, 
        string deleteActionName = null, 
        object deleteRouteValues = null)

在这种情况下,将始终显示编辑按钮,只有包含删除按钮时才会显示删除按钮。或者,我可以这样做:

@Html.Partial("Controls/RecordNameLink", Model)

(或者传递一个部分特定的模型)

但是有理由选择一个而不是另一个,特别是一个比另一个有更好的性能吗?(尽管我愿意更多地了解一般差异)

谢谢。

4

1 回答 1

3

在 MVC 3 中,对于这种事情来说,使用 html 助手渲染比使用 Partial 更快。

做一个测试,你在一个循环中渲染部分 100 多次,而不是让部分包含循环(表的每行部分渲染,表的所有行的部分渲染)。你可能会对结果感到非常惊讶。

您的 HTML 助手将跳过必须寻找部分的视图引擎、对虚拟路径提供程序的调用以加载它等。

于 2013-01-15T15:46:07.250 回答