ASP.NET 4.0 Web Forms Routing

Una de las novedades que podemos encontrar en ASP.NET 4.0 es el enrutado de Web Forms, para exponer URL limpias y orientadas a SEOSearch Engine Optimization

image

Para utilizar el enrutamiento en nuestras aplicaciones ASP.NET 4.0 con web forms, únicamente tenemos que modificar nuestro fichero Global.asax para habilitar el enrutado al iniciar la aplicación.

public static void RegisterRoutes(System.Web.Routing.RouteCollection routes)
{  
  routes.MapPageRoute("WebFormRoute", "WebForm/{DatoEntrada}", 
      "~/WebForm.aspx");
}
    
void Application_Start(object sender, EventArgs e) 
{
   RegisterRoutes(RouteTable.Routes);
}

El método RouteCollection.MapPageRoute permite definir las rutas para las aplicaciones de formularios Web Forms.

Parámetros:

  • Nombre de la ruta
  • Modelo
  • Ruta física de la página.

Una vez que nuestra aplicación ya admite el enrutado podemos utilizar esta funcionalidad de diferentes maneras.

1. De forma declarativa:

Utilizando RouteParameter con nuestros DataSources.

image

2. De forma Imperativa:

image

image

3. Con soporte de PostBacks:

  • Response.RedirectToRoute()
  • Response.RedirectToRoutePermanent()

4. Recuperación de Parámetros enviados en la petición:

Con la colección RouteData.

image

De esta sencilla manera podemos empezar a familiarizarnos con las rutas utilizadas por las aplicaciones MVC y facilitar el paso de nuestras aplicaciones a este modelo de una manera más natural.

4 comentarios en “ASP.NET 4.0 Web Forms Routing”

  1. Buenas figura! 😉

    Oye, se debe añadir una ruta por cada webform que tengamos???
    Imagina que tengo un proyecto con 100 webforms… debo añadir 100 rutas??

    Saludos!!!

  2. @Eduard no le pidas peras al olmo XD, piensa que esto es un sistema un poco rudimentario de mapeo de páginas físicas en las rutas.

    Pero como todo es cuestión de echarle imaginación yo veo dos buenas opciones.

    1. Guardar todos las páginas en un directorio y recorrer el directorio para añadir todos los ficheros aspx al enrutador.

    2. He visto un ejemplo muy interesante de enrutamiento utilizando el siteMap de ASP.NET http://chriscavanagh.wordpress.com/2009/05/19/asp-net-webform-routing-with-sitemaps

    Como siempre la imaginación aflora cuando los sistemas nos limitan. 🙂

  3. Hola, Marc
    Estoy implementando el tema del Routing en un proyecto que corre bajo IIS5.1 y no me acaba de funcionar esta mandanga 🙂
    Me compone bien las rutas, es decir, tal y como yo quiero que se compongan, pero luego al hacer una petición a una de esas rutas me da un fantástico y maravilloso HTTP 404 – Fiel not found.

    Has probado este tema bajo IIS5.1????
    Porque he estado buscando y a todo el mundo le pasa lo mismo que a mi.

    PD: Si, ya lo sé, IIS5.1 viejuno viejuno, pero es lo que hay.
    Un abrazo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *