Pergunta

Eu criei um html helper

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

Quando a primeira corda é o rótulo eo segundo string é o URL. O ajudante cria o html necessário (uma lista não ordenada, algumas aulas para o primeiro elemento, elemento atual, último elemento, elemento e separadores mortos etc) Todos bom trabalho, mas eu fazer isso criando um stringbuilder, bombeando todo o html nele e retornar o conteúdo do stringbuilder como uma string.

I figura neste exemplo não importa tanto assim, mas e se um HTML helper está produzindo uma grande carga de html? não há uma maneira de empurrá-lo para Response.Write em vez de um stringbuilder?

ou qualquer outro questões / melhorias que você tem?

Foi útil?

Solução

É certamente possível usar Response.Write em vez de devolver uma cadeia; veja a fonte para System.Web.Mvc.Ajax.Form (em AjaxExtensions.cs) na fonte MVC para um exemplo.

Você, então, chamar o ajudante com <% em vez de <% =.

Será mais rápido? Eu duvido, mas é fácil de teste.

Outras dicas

BTW temos um padrão de nomenclatura em ASP.NET MVC para as várias técnicas de renderização.

Helpers que retornam uma série do que são deve ser nomeado o que são. Por exemplo, Url.Action () e Html.TextBox () devolver esses itens exatos. Assim, esses ajudantes deve ser usado com o <% =%> sintaxe.

Helpers que prestam diretamente para o fluxo de saída deve começar com Render. Por exemplo, Html.RenderPartial (). Estes são utilizados com o <%%> sintaxe.

Helpers que usam o padrão IDisposable deve ser nomeado com Begin / End. Por exemplo, Html.BeginForm () e Html.EndForm (). Estes também devem ser usados ??com o <%%> sintaxe.

Obrigado, Eilon

Eu não acho que você terá problemas de desempenho, desde que o tamanho das páginas HTML que você produz é razoável. E quando você realmente começar a criar páginas de megabytes de tamanho, então você deve se perguntar, por que você está criando esses arquivos enormes HTML?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top