質問

htmlヘルパーを作成しました

Html.BreadCrumb(IDictionary<string, string> crumbs)

最初の文字列はラベルで、2番目の文字列はURLです。 ヘルパーは、必要なhtmlを作成します(順序付けられていないリスト、最初の要素、現在の要素、最後の要素、無効な要素、セパレータなどのクラス) すべてうまくいきますが、文字列ビルダーを作成し、その中のすべてのhtmlをポンプで送り、文字列ビルダーのコンテンツを文字列として返します。

この例ではそれほど重要ではないと考えていますが、Htmlヘルパーが大量のhtmlを大量に出力している場合はどうでしょうか。文字列ビルダーの代わりにResponse.Writeにプッシュする方法はありませんか?

その他の問題/改善点はありますか

役に立ちましたか?

解決

文字列を返す代わりに、Response.Writeを使用することは確かに可能です。例については、MVCソースのSystem.Web.Mvc.Ajax.Form(AjaxExtensions.cs内)のソースを参照してください。

次に、<!> lt;%=の代わりに<!> lt;%でヘルパーを呼び出します。

もっと速くなりますか?疑いがありますが、テストは簡単です。

他のヒント

ところで、ASP.NET MVCにはさまざまなレンダリング手法の命名パターンがあります。

文字列を返すヘルパーは、その名前を指定する必要があります。たとえば、Url.Action()およびHtml.TextBox()はそれらの正確なアイテムを返します。したがって、これらのヘルパーは<!> lt;%=%<!> gt;とともに使用する必要があります。構文。

出力ストリームに直接レンダリングするヘルパーは、Renderで開始する必要があります。たとえば、Html.RenderPartial()。これらは<!> lt;%%<!> gt;で使用されます。構文。

IDisposableパターンを使用するヘルパーには、Begin / Endという名前を付ける必要があります。たとえば、Html.BeginForm()およびHtml.EndForm()。これらは、<!> lt;%%<!> gt;でも使用する必要があります。構文。

ありがとう、 エイロン

作成するHTMLページのサイズが適切である限り、パフォーマンスの問題はないと思います。そして、本当にメガバイトのサイズのページを作成し始めたら、あなたは自分自身に尋ねるべきです、なぜあなたはそのような巨大なHTMLファイルを作成するのですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top