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ヘルパーを使用してレンダリングする方が高速になります。

ループ内で部分的に100回以上レンダリングするか、部分的にループを含めるか(テーブルの行ごとに部分的にレンダリングするか、テーブルのすべての行を部分的にレンダリングするか)をテストします。あなたはその結果にかなり驚かれるかもしれません。

HTMLヘルパーは、パーシャルを探す必要のあるビューエンジン、それをロードするための仮想パスプロバイダーの呼び出しなどをスキップします。

于 2013-01-15T15:46:07.250 に答える