[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.
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.
LikeLike