2013-02-26 11 views
6

Ich kann nicht entscheiden, ob ich einen htmlHelper oder eine Teilansicht zur Lösung meines Problems verwenden soll.htmlHelper vs Teilansicht

Ich möchte den folgenden Code wiederverwenden:

<div style="width: 500px; float: left;"> 
    <div class="box effect2"> 
    <span><a href="@Url.Action("someMethod", "somController")"> 
     <img src="@Url.Content("~someurl)" /></a></span> 
    </div> 
</div> 

Die href und die Bildquelle würde Parameter sein.

Was ist der beste Weg, es zu tun?

Antwort

9

Verwenden Sie Teilansicht, wenn Sie viele Markup haben. HTML-Helfer sollten verwendet werden, um nur kleine Teile von HTML zu generieren. In diesem speziellen Fall sind Sie wirklich am Limit und beide Ansätze wären in Ordnung. Verwenden Sie die, die Sie für dieses spezielle Beispiel bevorzugen. Ich würde wahrscheinlich mit einem benutzerdefinierten HTML-Helfer hier gehen, da dies scheint ein ziemlich gemeinsames Widget, das über verschiedene Anwendungen wiederverwendet werden könnte, wenn Sie es in eine Assembly integrieren.

+0

ok, danke für die Information. Ich habe einen HTML-Helfer nach Ihrer Empfehlung erstellt. – Sam

+0

Ob ein Code über AJAX aufgerufen wird oder nicht, könnte ebenfalls ein Kriterium sein. – mediafreakch

+0

@DarinDimitrov Ich denke, Performance-Aspekt sollte hier auch berücksichtigt werden. Wenn Teilansichten verwendet werden, erstellt ControllerFactory den Controller der Teilansicht (falls Teilansicht vorhanden ist) und kostet Zeit. ControllerFactory ruft zuerst die Position der partiellen Ansicht ab (sie speichert die Positionen partieller Ansichten aber immer noch ..) und erstellt eine Controller-Instanz, die kein kleines Objekt ist und etwas Speicher verbraucht. Event, wenn die Teilansicht keine Controller hat (z. B. RenderPartial), muss sie immer noch nach der Partial View suchen. Daher denke ich, dass die Verwendung von HtmlHelpers besser wäre. Was denken Sie? – sotn