Design a site like this with WordPress.com
Get started

ASP.NET MVC: Html Helpers Fuertemente Tipados

[Además del blog, podéis seguir a Scott en twitter: twitter.com/scottgu]

Éste es el primer post de una serie que voy a hacer sobre la próxima release de ASP.NET MVC2. En este post veremos los nuevos HTML helpers fuertemente tipados que se han añadido en esta release.

Html Helpers existentes

Publicamos ASP.NET MVC1  con un conjunto de helper methods HTML que podían ser usado en las plantillas de vistas para ayudar a la generación del HTML UI. Por ejemplo, el código para un textbox de salida que podríamos escribir (en la vista del .aspx) usando el método Html.TextBox() sería:

El primer parámetro pasa el nombre/id del textbox, y el segundo parámetro indica el valor que debería tener. El método helper  anterior renderizará un HTML como el siguiente:

Nuevos métodos helper HTML fuertemente tipados.

Una de las características que mucha gente ha pedido para ASP.NET MVC2 era soportar también métodos helper fuertemente tipados que usen expresiones lambda cuando referencien a modelos y vistas a una plantilla. Esto permite una mejor revisión en tiempo de compilación de las vistas (de manera que se pueden encontrar errores en tiempo de compilación en lugar de en ejecución), y además permite un mejor intellisense en las plantillas de vistas.

Los nuevos métodos helper fuertemente tipados están incluidos en ASP.NET MVC2. Estos métodos usan el formato de nombrado “Html.NombreMetodoFor()”. Por ejemplo, Html.TextboxFor(), Html.checkboxFor(), Html.TextAreaFor(), etc. Usan expresiones lambda para especificar tanto el nombre/id del elemento, como el valor para renderizarlo.

Por ejemplo, ahora en ASP.NET MVC 2 podemos usar el método Html.TextBoxFor() además del Html.TextBox:

Fijáos que no necesitamos indicar el parámetro “ProductName” – las expresiones lambda son lo suficientemente flexibles para obtener tanto el nombre de la propiedad /campo en nuestro modelo de objetos además del valor.

Como los métodos son fuertemente tipados, también damos soporte de intellisense para ellos en Visual Studio cuando se escriben expresiones lambda:

El Html renderizado es el mismo que el del método primero:

Lista de métodos helper fuertemente tipados  en ASP.NET MVC 2

ASP.NET MVC 2 soporta los siguientes métodos fuertemente tipados:

HTML Helpers para elementos:

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

Otros:

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

Veremos los nuevos métodos HTML.EditorFor() y Html.DisplayFor() en próximos psot de esta serie cuando veamos la funcionalidad de autocreación mejorada de ASP.NET MVC 2. También usaremos el método Html.ValidationMessageFor() en el próximo post de esta serie en el que veremos las mejoras de validación de ASP.NET MVC2

Html Helpers fuertemente tipados con autocreación.

VS 2008 y VS 2010 usan por defecto el soporte de autocreación de Html helpers fuertemente tipados cuando usan el comando de vistas “Add View”.

Por ejemplo, supongamso que tenemos una clase simple “productsController” como la siguiente con un método “Edit” que renderiza un formulario de edición para un modelo de “Product”:

Podemos hacer clic derecho en el método Edit en Visual Studio y elegimos la opción “Add View” para crear la plantilla de la vista. Elegiremos crear una plantilla “Edit” que es creada automáticamente usando un objeto Producto:

Con ASP.NET MVC 2, la plantilla creada por defecto usa los métodos fuertemente tipados para referenciar el objeto Producto:

Resumen

Los métodos helper fuertemente tipados incluidos en ASP.NET MVC 2 ofrecen una forma sencilla de obtener mayor seguridad en nuestras vistas. Esto permite un cheking en tiempo de ejecución mejor en nuestras vistas (permitiendo encontrar errores en tiempo de compilación), y además aprota un intellisense mucho más rico cuando editamos las plantillas de nuestras vistas en Visual Studio.

Espero que sirva.

Scott

Traducido por: Juan María Laó Ramos.

Artículo original.

Author: Juanma

Bueno, como reza el título de este blog y de las cosas que iré escribiendo ya os hareis una idea de cómo soy.

3 thoughts on “ASP.NET MVC: Html Helpers Fuertemente Tipados”

  1. Que tal?

    Muy interesante tu sitio, lo encontré hace un par de días y realmente está muy bueno. Yo soy docente de una universidad privada de Buenos Aires, Argentina, y junto a un colega armamos un blog de capacitación para estudiantes y profesionales de IT. Apuntamos a explicar los fundamentos de la programación orientada a objetos con ejemplos prácticos en Java y C#.NET. A su vez, como ambos trabajamos como desarrolladores en .NET escribimos posts sobre los problemas que nos vamos encontrando en el día a día. Te invito a visitar el sitio en http://www.ittraining.com.ar y agradecería cualquier comentario tuyo.

    Muchas gracias.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: