ASP.NET MVC: Razor @helper vs Erweiterung Methoden zu HtmlHelper - was ist bevorzugt?

8

Die Razor-Ansichts-Engine in ASP.NET MVC unterstützt @helper, um kleine Hilfsmethoden zu definieren. Es scheint, dass Sie das gleiche tun können, indem Sie HtmlHelper um Erweiterungsmethoden erweitern. In welchen Situationen ist es am besten, jedes zu verwenden?

    
Jake Petroules 08.06.2011, 22:05
quelle

2 Antworten

8

Subjektive Frage, also hier ist meine subjektive und voreingenommene Antwort: Wenn der Helfer-Code Mengen von C # -Code beinhaltet, benutze einen benutzerdefinierten HtmlHelper und wenn es primäres Markup ist, könntest du @helper benutzen. Aber vorausgesetzt, dass Sie, wenn Sie Markup verwenden, einen partiellen wie @Html.Partial("_foo", SomeModel) oder einen Editor / Anzeigevorlagen wie @Html.EditorFor(x => x.Foo) verwenden können, hat @helper keinen praktischen Nutzen. Persönlich habe ich übrigens nie @helper benutzt, und ich habe es nie Leuten empfohlen, die ich konsultiert habe.

    
Darin Dimitrov 08.06.2011, 22:06
quelle
7

Ja, das stimmt, obwohl die @helper ein wenig einfacher zu arbeiten scheinen, wenn es einen guten Teil des Markups gibt, der enthalten ist - HTML-Erweiterungen und umfangreichere Markups passen nicht so gut zusammen, IMO.

Auf der anderen Seite kann @helpers nicht wie Html Erweiterungen getestet werden.

    
ataddeini 08.06.2011 22:08
quelle

Tags und Links