Rutas personalizadas en nuestros controladores con ASP.NET MVC 5

Veremos como personalizar de manera práctica las rutas de nuestros controladores.

3,713 lecturas

Tenemos 2 formas o al menos que yo sepa de crear rutas personalizadas en nuestros proyectos ASP.NET MVC 5, la primera es modificando el RouteConfig.cs y definiendo las rutas y la otra mediante el atributo Route. En esta publicación vamos hablar de la segunda opción.

RouteConfig.cs

Ve a la siguiente clase y modifica el método RegisterRoutes agregando al comienzo lo siguiente:

routes.MapMvcAttributeRoutes();

Debería quedar así:

public static void RegisterRoutes(RouteCollection routes)
{
    // Custom routes
    routes.MapMvcAttributeRoutes();

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

Con esto hemos activado las rutas personalizadas para nuestros controladores.

Decora la ruta de tu controlador con el atributo Route

[Route("category/{name}")]
public ActionResult Category(string name)
{
    return View();
}

Para acceder a esta ruta debemos escribir en un comienzo "category/" y luego el parámetro que hemos especificado. En este caso ha sido el parámetro "name". Asimismo, este también deberá ser especificado como variable de entrada para nuestro método.

  • Los parámetros son definidos entre llaves. Ejm: category/{name}/{id}
  • Si queremos un parámetro opcional. Ejem: category/{name?}
¿Te gustó nuestra publicación?
Suscríbete a nuestro boletín