MVC Framework - Motor de enrutamiento

El enrutamiento ASP.NET MVC permite el uso de URL que describen las acciones del usuario y los usuarios las entienden más fácilmente. Al mismo tiempo, el enrutamiento se puede utilizar para ocultar datos que no están destinados a mostrarse al usuario final.

Por ejemplo, en una aplicación que no utiliza enrutamiento, al usuario se le mostrará la URL como http: //myapplication/Users.aspx? Id = 1 que correspondería al archivo Users.aspx dentro de mi ruta de aplicación y el ID de envío como 1 Generalmente, no nos gustaría mostrar dichos nombres de archivos a nuestro usuario final.

Para manejar las URL de MVC, la plataforma ASP.NET utiliza el sistema de enrutamiento, que le permite crear cualquier patrón de URL que desee y expresarlas de manera clara y concisa. Cada ruta en MVC contiene un patrón de URL específico. Este patrón de URL se compara con la URL de solicitud entrante y, si la URL coincide con este patrón, el motor de enrutamiento lo utiliza para seguir procesando la solicitud.

Formato de URL de enrutamiento MVC

Para comprender el enrutamiento MVC, considere la siguiente URL:

http://servername/Products/Phones

En la URL anterior, Productos es el primer segmento y Teléfono es el segundo segmento que se puede expresar en el siguiente formato:

{controller}/{action}

El marco MVC considera automáticamente el primer segmento como el nombre del controlador y el segundo segmento como una de las acciones dentro de ese controlador.

Note- Si el nombre de su controlador es ProductsController, solo mencionaría Productos en la URL de enrutamiento. El marco MVC comprende automáticamente el sufijo del controlador.

Crea una ruta simple

Las rutas se definen en el archivo RouteConfig.cs que está presente en la carpeta del proyecto App_Start.

Verá el siguiente código dentro de este archivo:

public class RouteConfig { 
   
   public static void RegisterRoutes(RouteCollection routes) { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  
      
      routes.MapRoute( 
         name: "Default", 
         url: "{controller}/{action}/{id}", 
         defaults: new { controller = "Home", action = "Index", 
            id = UrlParameter.Optional } 
      ); 
   } 
}

Este método RegisterRoutes lo llama Global.ascx cuando se inicia la aplicación. El método Application_Start en Global.ascx llama a esta función MapRoute que establece el controlador predeterminado y su acción (método dentro de la clase Controller).

Para modificar la asignación predeterminada anterior según nuestro ejemplo, cambie la siguiente línea de código:

defaults: new { controller = "Products", action = "Phones", id = UrlParameter.Optional }

Esta configuración seleccionará el ProductsController y llamará al método Phone dentro de él. Del mismo modo, si tiene otro método como Electronics dentro de ProductsController, la URL sería:

http://servername/Products/Electronics