Se trata de una forma puramente funcional de crear un helper: creamos una función que retorna una cadena de texto, y como en el ejemplo anterior, podemos invocarla desde cualquier parte de la vista.
Sin embargo, Razor dispone de otro tipo de helpers, llamados helpers declarativos, que ya fueron descritos hace algún tiempo por Scottgu, aunque hasta la Beta de MVC 3 no hemos podido verlos en funcionamiento.
Los helpers declarativos son funciones que permiten introducir en su cuerpo tanto código como marcado HTML, al igual que se hace sobre la propia página o vista, lo que permite construcciones mucho más legibles.
Su codificación es muy similar a de las funciones, salvo en que en este caso no tienen ningún tipo de retorno, y son precedidas por
@helper
, como se observa a continuación: Publicado en: Variable not found.
Publicado por José M. Aguilar a las 1:43 p. m.
Etiquetas: asp.net, aspnetmvc, desarrollo, trucos, webmatrix
En esta ocasión tendrá lugar los días 28 y 29 de octubre (¡ya mismo!) en Redmond, pero, afortunadamente para los que nos pilla algo lejos, podremos seguirlo en vivo y en directo gracias al vídeo streaming.
El evento comenzará a las 18:00 (hora peninsular española) el jueves 28, y puedes seguirlo de forma gratuita y sin registro previo accediendo a la dirección:
http://player.microsoftpdc.com/session?refid=73301También puedes ver la agenda de sesiones, y planificarte para asistir a los temas que más te interesen, e incluso acceder a partir del día siguiente las sesiones grabadas. Y para estar a la última, puedes seguir vía Twitter a @PDCEvent y usar el hashtag #PDC10.
Ah, que como no es mi caso casi se me olvida: si eres de Madrid, puedes ir también a las oficinas de MS a seguir en directo la sesión inaugural, eso sí, previo registro debido la lógica limitación de aforo.
Los helpers locales descritos en el post anterior son y seguirán siendo válidos en MVC 1, 2, 3, y posiblemente todos los que vengan detrás, puesto que en realidad se trataba únicamente de aprovechar una característica del motor de vistas basado en formularios web, es decir, el Webforms View Engine, el mismo utilizado en las aplicaciones ASP.NET “clásicas”.
Por tanto, si en MVC 3 seguimos utilizando el motor de vistas Webforms, podremos crear helpers locales tal y como se describía en el post anterior. Sin embargo, si utilizamos el motor de vistas Razor, los bloques
<script runat="server">
serán ignorados, al igual que otras características propias de formularios web.Razor dispone de su propia sintaxis para definir funciones locales utilizando el bloque
@functions
, como puede observarse en el ejemplo mostrado a continuación:En el interior del bloque
@functions
podemos crear tantas funciones como necesitemos, por lo que podemos conseguir exactamente lo mismo que con su equivalente Webforms.Publicado en: Variable not found.
Publicado por José M. Aguilar a las 11:49 p. m.
Etiquetas: asp.net, aspnetmvc, consultas, desarrollo, trucos
Observad, por ejemplo, el siguiente código, en el que existe una lógica duplicada, y un gran número de aperturas y cierres de bloques que dificultan su lectura, y facilitan la introducción de errores:
Esto podría simplificarse un poco creando un helper como el siguiente:
De esta forma, la vista quedaría como sigue; hemos ganado bastante en legibilidad y simplicidad de la misma respecto a la primera versión:
Sin embargo, cuando andamos embarcados en un proyecto relativamente extenso, enseguida notaremos que los helpers empiezan a multiplicarse. En casi cualquier vista medianamente compleja utilizaremos uno o más helpers, a veces difícilmente reutilizables entre ellas, y esto hace que al final tengamos que mantener una amplia colección de métodos extensores que en la práctica sólo utilizamos una vez.
En estos escenarios es donde suelo utilizar helpers locales, funciones incluidas en el mismo archivo .aspx, en el interior del tag
<script runat="server">
, como en los viejos tiempos:De esta forma podemos beneficiarnos de las siguientes ventajas:
- La lógica de presentación se introduce junto a la propia presentación, es decir, en el mismo archivo de código desde la cual se utiliza, lo que simplifica su localización y mantenimiento posterior.
- Al tratarse de código incluido en una vista, se pueden realizar cambios directamente sobre ella, sin necesidad de recompilar el proyecto.
- De la misma forma, el hecho de encontrarse en ella hace que podamos acceder de forma directa a los parámetros enviados desde el controlador, utilizando la propiedad Model de la vista.
- No perdemos las ventajas de intellisense u otras ayudas del editor.
Publicado en: Variable not found.
- Scott Guthrie: ASP.NET MVC 3: Layouts and Razor
Fecha: 23/10/2010 - Scott Guthrie: Practical jQuery Mobile with ASP.NET MVC
Fecha: 22/10/2010 - Nupack ya no se llama Nupack. A ver qué nombre le ponemos ahora a la criatura...
Fecha: 22/10/2010 - Introducción de magia jQuery partiendo de metadatos del modelo en ASP.NET MVC.
Fecha: 22/10/2010 - Uso de Web Helpers con ASP.NET MVC 3 y Razor.
Fecha: 22/10/2010 - Uso de JsonValueProvider en ASP.NET MVC 3
Fecha: 22/10/2010 - campusMVP: Interesantísimo: como arrastrar archivos al navegador para subirlos al servidor (solo FF y Chrome)
Fecha: 21/10/2010 - Integrar formularios html5 en ASP.NET MVC.
Fecha: 21/10/2010 - Crear y eliminar cookies en ASP.NET MVC.
Fecha: 21/10/2010 - Lo básico del motor de vistas Razor.
Fecha: 21/10/2010 - Gisela Torres: Cómo enviar peticiones utilizando OAuth: Firmando peticiones
Fecha: 20/10/2010 - Uso del helper WebMail en ASP.NET MVC 3, por Gunnar Peipman.
Fecha: 20/10/2010 - http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx
Fecha: 20/10/2010 - Javier Torrecilla: MVC3: Validación de Elementos HTML condicional
Fecha: 19/10/2010 - Lanzado jQuery 1.4.3.
Fecha: 19/10/2010 - Fórmulas para acelerar Visual Studio.
Fecha: 19/10/2010 - campusMVP: Paso a paso: cómo usar BitLocker para cifrar tus discos duros en Windows 7
Fecha: 19/10/2010 - Cómo introducir comentarios en vistas/páginas con Razor.
Fecha: 19/10/2010 - José Manuel Alarcón: Solución al mensaje "Error genérico de GDI+" en aplicaciones Web que generan gráficos
Fecha: 19/10/2010 - Javier Holguera: Web Deploy. Desplegando app web más facilmente en IIS
Fecha: 18/10/2010 - 5 trucos interesantes para javascript.
Fecha: 18/10/2010 - Uso del helper AntiForgery en webmatrix.
Fecha: 18/10/2010 - El helper WebImage de ASP.NET MVC 3 by Gunnar Peipman.
Fecha: 18/10/2010
Publicado en: Variable not found