HtmlHelper 与 Partial 的性能

Dav*_*ave 5 asp.net-mvc asp.net-mvc-3

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

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

public static HtmlString RecordNameLink(
        this HtmlHelper htmlHelper, 
        string linkText, 
        string editActionName, 
        object editRouteValues, 
        string deleteActionName = null, 
        object deleteRouteValues = null)
Run Code Online (Sandbox Code Playgroud)

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

@Html.Partial("Controls/RecordNameLink", Model)
Run Code Online (Sandbox Code Playgroud)

(或传递部分特定模型)

但是有没有理由选择一个而不是另一个,特别是一个比另一个有更好的性能吗?(虽然我愿意了解更多关于一般差异的信息)

谢谢。

Cha*_*ert 3

在 MVC 3 中,对于此类事情,使用 html 帮助器渲染会比使用 Partial 更快。

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

您的 HTML Helper 将跳过视图引擎寻找部分、调用虚拟路径提供程序来加载它等。