ASP.NET MVC 2: Stark Typisierte HTML Hilfsmethoden

Dies ist der erste Teil aus der Serie Neuerungen bei ASP.NET MVC 2. Ich möchte hier das Feature "Stark Typisierte HTML Hilfsmethoden" vorstellen.

"Alte" HTML Hilfsmethoden

ASP.NET MVC 1 beinhaltete bereits eine Reihe an HTML Hilfsmethoden, mit dessen Hilfe man in den View Vorlagen HTML produzieren lassen konnte.
Um zum Beispiel eine TextBox zu erzeugen, benutzt man die Hilfsmethode Html.TextBox():

<%= Html.TextBox("ProductName", Model.ProductName) %>

Der erste Parameter der Hilfsmethode gibt den Name bzw. die ID der TextBox an und der zweite Parameter den Wert.
Im daraus erzeugten HTML sieht dies wie folgt aus: 

<input id="ProductName" name="ProductName" type="text" value="Aniseed Syrup" />

Stark Typisierte HTML Hilfsmethoden

Ein oft angefragtes Feature waren stark typisierten HTML Hilfsmethoden, welche mit Hilfe von Lambda Ausrücken das Model bzw. ViewModel an die View binden sollte.
Somit könnten Fehler schon während der Kompilierung festgestellt werden und auch die Unterstützung von IntelliSence würde gewährleistet werden.

Diese Hilfmethoden sind in ASP.NET MVC 2 integriert worden.
Sie folgen der Namenskonvention "Html.HelperNameFor()", wie z.B. Html.TextBoxFor(), Html.CheckBoxFor(), Html.TextAreaFor(), etc.
Mit Hilfe von Lambda Ausdrücken werden hier der Name, die ID und der Wert des HTML Elementes festgelegt.
Um zum Beispiel eine TextBox zu erzeugen, kann man nun Hilfsmethode Html.TextBoxFor() benutzen:

<%= Html.TextBoxFor(model => model.ProductName) %>

Durch die starke typisierten Hilfsmethoden wird die Unterstützung von IntelliSense gewährleistet:

Das daraus erzeugte HTML ist identisch mit den "alten" Hilfsmethoden:

<input id="ProductName" name="ProductName" type="text" value="Aniseed Syrup" />

Liste der Stark Typisierte HTML Hilfsmethoden in ASP.NET MVC 2

In ASP.NET MVC 2 wurden folgende Stark Typisierte HTML Hilfsmethoden eingebaut:

Stark Typisierte HTML Hilfsmethoden:

  • Html.TextBoxFor()
  • Html.TextAreaFor()
  • Html.DropDownListFor()
  • Html.CheckboxFor()
  • Html.RadioButtonFor()
  • Html.ListBoxFor()
  • Html.PasswordFor()
  • Html.HiddenFor()
  • Html.LabelFor()

Weitere Stark Typisierte Hilfsmethoden:

  • Html.EditorFor()
  • Html.DisplayFor()
  • Html.DisplayTextFor()
  • Html.ValidationMessageFor()

Stark Typisierte HTML Hilfsmethoden innerhalb des Scaffoldings

Visual Studio 2008 und Visual Studio 2010 benutzen jetzt standardmäßig die Stark Typisierte HTML Hilfsmethoden wenn mittels "Scaffolding" View Vorlagen erzeugt werden. 

Beispiel:
Gehen wir von einer einfachen "ProductsController" Klasse aus, welche eine "Edit" Aktion zum bearbeiten des "Product" Models beinhaltet:

Innerhalb der "Edit" Aktion können wir nun mittels Rechts-Klick das Kontextmenü öffen.
Hier wählen wir den Menüpunkt "Add View" aus, um eine View Vorlage zu erzeugen.
Im Dialog wählen wir aus, dass die View auf Basis des "Product" Models erzeugt werden soll:

Add View Dialog

Die daraus erzeugte View Vorlage sieht anschliessend wie folgt aus:

Erzeugte View Vorlage

Fazit

Die Stark Typisierte HTML Hilfsmethoden in ASP.NET MVC 2 sind eine einfache Möglichkeit typ-sicher in View Vorlagen zu arbeiten.
Sie verbesser die Prüfungen der Views zur Kompilierzeit und tragen zum angenehmeren Arbeiten mit Visual Studio durch IntelliSence Unterstützung bei.

[Orginal Post auf ScottGu's Blog: link]

Check Also

SQL Saturday #409 Rheinland – Slides und Demos

Vergangenen Samstag fand der dritte deutsche SQL Saturday statt. Wie auch im letzten Jahr konnte dafür als Austragungsort die Hochschule Bonn-Rhein-Sieg genutzt werden. Gemeinsam mit Alexander Karl durfte ich dort eine Session zum Thema "SQL Server vs. Azure DocumentDB – Ein Battle zwischen XML und JSON" halten. Die verwendeten Slides und Code Beispiele findet ihr in diesem Blog Post.