ActionLink y RedirectToAction para áreas en ASP.NET MVC

En las últimas entradas de este blog estuvimos viendo distintos puntos asociados a los helpers en ASP.NET MVC. Uno de los puntos importantes que vimos en “Helpers en ASP.NET MVC, reutilizando código en nuestras vistas” es el poder quitar código repetitivo o simplificar ciertas operaciones.

Allí recordé el comentario que había dejado @maxilovera en la entrada “Áreas en ASP.NET MVC – Una forma de organizar nuestras aplicaciones“:

Solamente hay que acordarse del parámetro de @area en los links para no volverse loco con las redirecciones. Aquí podría armarse un helper para facilitar la codificación

Este comentario venía a raíz de que para el Html Helper ActionLink como para las redirecciones (método RedirectToAction en los controladores) usando áreas, debíamos acordarnos de establecer como un atributo diferenciado el área a usar:

Area - ActionLink
Ejemplo de uso de áreas en el armado de un link
Area - RedirectToAction
Ejemplo de uso de áreas en la redirección

Esto puede ser propicio a olvidarnos de declarar ese atributo, además de que es algo repetitivo a realizar constantemente. Así que veamos cómo mejorar la situación con lo aprendido en los post’s anteriores.

Lo primero que vamos a definir es que para esta solución utilizaremos los Html Helpers, extendiendo lo ya definido en el namespace Html. Para ello crearemos el helper de la siguiente forma:

HelperAreas - HelperActionLink
Helper extendiendo ActionLink para áreas

Leer más »

Crear Razor Helpers en ASP.NET MVC

Siguiendo lo visto en el post inicial sobre reutilización en nuestras vistas ASP.NET MVC y en el de Html Helpers en esta entrada veremos los Razor Helpers, la alternativa que nos permite realizarlo directamente desde nuestra vistas.

Lo primero que vamos a ver es la sintaxis del mismo. Al ser código Razor, el mismo deberá estar ubicado en una vista. La declaración es muy similar a una función, salvo que inicia con la palabra clave @helper, seguida del nombre del mismo y los parámetros que recibe. A la vez que su ámbito se define con corchetes. Luego el contenido es como si estuviéramos escribiendo una vista en Razor de forma normal.

Siguiendo con el ejemplo del post anterior vamos a ver cómo quedaría el helper en cuestión para renderizar una lista de elementos HTML con esta alternativa:

RazorHelpers - HelperEnVista
Sintaxis de un Helper Razor

Como se puede apreciar, es muy sencilla la escritura del mismo. Y el uso también lo es, veámoslo en la siguiente imagen:

Leer más »

Crear Html Helpers en ASP.NET MVC

Si hay algo que en general podemos estar conformes (y de mi parte muy conforme) con ASP.NET MVC es la capacidad de extensión que nos brinda en distintos puntos. Siguiendo con lo que iniciamos en el post “Helpers en ASP.NET MVC, reutilizando código en nuestras vistas“, hoy vamos a veres cómo crear nuestros propios Html Helpers en C# para facilitar la escritura de nuestras vistas, evitando tener que repetir código en las mismas.

Lo primero que vamos a comentar es que por defecto tenemos muchos helpers a disposición, son todos aquellos que usamos bajo el namespace Html. Algunos ejemplos de uso son los que podemos ver a continuación, sacados de una de las vistas asociadas a la autenticación en el template inicial de ASP.NET MVC:

Helpers - Ejemplos
ASP.NET MVC Helpers

Algunos de los más comunes y usados son (por nombrar solo algunos):

  • BeginForm()
  • EndForm()
  • Label()
  • ActionLink()
  • TextArea()
  • TextBox()
  • CheckBox()
  • RadioButton()
  • ListBox()
  • DropDownList()
  • Hidden()
  • Password()
  • Display()

Para mayores detalles pueden ver todos los disponibles y cómo usarlos en la documentación oficial.

Básicamente el objetivo de un helper es generar código HTML de forma simple y parametrizada, evitando repetir código (lo cual siempre es un objetivo fundamental), además de permitirnos que nuestras aplicaciones queden mucho más ordenadas, prolijas y mantenibles.

Ahora bien, veamos qué debemos hacer para crear nuestros propios helpers.

Leer más »

Helpers en ASP.NET MVC, reutilizando código en nuestras vistas

Como generalmente suele suceder cuando estamos desarrollando nuestra aplicación, un objetivo primordial es la reutilización de la mayor cantidad posible de código, logrando de esta forma que nuestras aplicaciones queden ordenadas, prolijas y mucho más mantenibles. Además de simplificar el trabajo que realizamos al momento de escribir nuestro código.

Cuando hablamos de vistas, hay distintas alternativas que tenemos disponibles, entre ellas los helpers. Un helper es una herramienta de extensión de ASP.NET MVC que nos permite crear código HTML de forma personalizada y parametrizada. Sus principales objetivos son:

  • Reutilizar comportamientos comunes que se repiten a lo largo de las vistas.
  • Facilitar la escritura de nuestras vistas, permitiendo que determinadas porciones de código queden definidas en un solo lugar.

Si bien son similares los puntos planteados anteriormente, con el primero hacemos incapié en cuestiones donde hay una mayor cantidad de lógica asociada a variantes de visualización. Con el segundo, a aquellos aspectos donde siempre escribimos el mismo HTML pero con pequeñas variantes.

Ahora bien, cómo hacemos nuestros helpers? Aquí tenemos dos alternativas disponibles, complementarias entre si:

  • Html Helpers
  • Razor Helpers

Veamos una descripción mínima, luego haremos un post detallado para cada una.

Leer más »