© best_vector/Shutterstock.com
Tipps und Tricks rund um .NET und Visual Studio

Kolumne: .NETversum


Razor Helper für Views ASP.NET MVC

Immer wiederkehrende Aufgaben innerhalb von Views in ASP.NET-MVC-Projekten können mit Unterstützung von Razor in eigene so genannte Helper ausgelagert werden. Im Wesentlichen handelt es sich dabei um Methoden, die mithilfe von Razor entwickelt werden. Razor Helper werden innerhalb von Views mit dem Schlüsselwort @helper eingeleitet. Das nachfolgende Beispiel zeigt zum Beispiel die Definition des Helpers RenderLogo, das den Namen eines Logos entgegennimmt und damit ein Image-Tag rendert.

@helper RenderLogo(string name) { <img src="@name" width= "64" height= "64" /> }

Anschließend kann der Helper wie eine serverseitige Methode an den gewünschten Stellen aufgerufen werden:

<div class="logos"> @RenderLogo("beeindruckend.jpg") </div>

Um einen Helper für alle Views bereitzustellen, definiert ihn der Entwickler in einer Datei, die die Endung ­cshtml (oder vbhtml) aufweist und sich im globalen Projektverzeichnis App_Code befindet. Angenommen, die Datei trägt den Namen LogoHelper und beherbergt den Helper RenderLogo, so kann der Entwickler auf diesen Helper in sämtlichen Razor Views durch Angabe von @LogoHelper.RenderLogo zurückgreifen. Würde sich die Datei in einem Ordner namens App_Code/MyHelpers befinden, könnte der Entwickler RenderLogo hingegen über @MyHelpers.LogoHelper.RenderLogo zur Ausführung bringen. Somit lassen sich Helper beliebig strukturieren.

Views für mobile Anwendungen in ASP.NET MVC

Ab Version 4 unterstützt ASP.NET MVC mehrere Varianten einer View für unterschiedliche Gerätetypen. Verwendet der Aufrufer einen mobilen Browser, versucht ASP.NET MVC eine View zu finden, deren Namen dem vom Controller angegebenen Namen entspricht, jedoch zusätzlich auf .Mobile endet. Wird beispielsweise die View Index angefordert, kommt bei mobilen Browsern die View ­­Index.Mobile.cshtmlzum Einsatz, sofern C# und Razor Verwendung finden. Existiert diese nicht, wird – wie bisher – auf Index.cshtml zurückgegriffen. Diese View ist es auch, die standardmäßig für nicht mobile Browser herangezogen wird. Auf dieselbe Art wird vorgegangen, um eingebundene partielle Views oder Layoutviews zu lokalisieren.

Weitere Weichenstellungen für Views können in der Datei app.config innerhalb der Methode Application_Start festgelegt werden, indem der Entwickler hier ein Kriterium angibt, das sich auf den aktuellen HttpContext bezieht, sowie ein Suffix für die Namen der Views. Dazu kommt die statische Eigenschaft DisplayModes.Modes zum Einsatz. Listing ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang