Frage

ich ein HTML-Helfer erstellt

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

Wenn die erste Zeichenfolge die Markierung und die zweite Zeichenfolge ist die URL. Der Helfer erstellt die HTML erforderlich (eine ungeordnete Liste, einige Klassen für die erste Element, aktuelles Element, letztes Element, totes Element und Separatoren, etc.) Alle Arbeiten schön, aber ich tun dies durch einen Stringbuilder zu schaffen, Pumpen alle html in ihm und der String Inhalt als String zurück.

Ich stellt dar, in diesem Beispiel spielt es keine Rolle, dass alles viel, aber was ist, wenn ein HTML-Helfer ist eine große Last von html am laufenden Band? Gibt es nicht eine Möglichkeit, es zu schieben, anstatt einen String Response.Write?

oder andere Probleme / Verbesserungen, die Sie haben?

War es hilfreich?

Lösung

Es ist sicherlich möglich Response.Write statt Zurückgeben einer Zeichenfolge zu verwenden; siehe die Quelle für System.Web.Mvc.Ajax.Form (in AjaxExtensions.cs) in der MVC-Quelle für ein Beispiel.

Sie rufen dann die Helfer mit <% anstelle von <% =.

Wird es schneller sein? Ich bezweifle es, aber es ist einfach zu testen.

Andere Tipps

BTW haben wir ein Benennungsmuster für die verschiedenen Rendering-Techniken in ASP.NET MVC.

Helfer, der einen String zurückzugeben, was sie sein sollten benannt, was sie sind. Zum Beispiel Url.Action () und Html.TextBox () gibt genau diese Elemente. Daher sollen diese Helfer mit der <% =%> Syntax verwendet werden.

Helfer, die direkt mit dem Ausgangsstrom machen sollte mit Render beginnen. Zum Beispiel Html.RenderPartial (). Diese werden verwendet, mit der <%%> Syntax.

Helfer, die die IDisposable Muster verwenden sollen mit Beginn / Ende benannt werden. Zum Beispiel Html.BeginForm () und Html.EndForm (). Diese sollten auch verwendet werden, die <%%> Syntax.

Danke, Eilon

Ich glaube nicht, dass Sie so lange keine Performance-Probleme haben als die Größe der HTML-Seiten, die Sie produzieren sinnvoll ist. Und wenn Sie wirklich Startseiten von Megabyte groß zu erstellen, dann sollten Sie sich fragen, warum bist du so große HTML-Dateien erstellen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top