Framework MVC - Moteur de routage

Le routage ASP.NET MVC permet l'utilisation d'URL qui décrivent les actions de l'utilisateur et sont plus facilement comprises par les utilisateurs. En même temps, le routage peut être utilisé pour masquer des données qui ne sont pas destinées à être montrées à l'utilisateur final.

Par exemple, dans une application qui n'utilise pas le routage, l'utilisateur verrait l'URL comme http: //myapplication/Users.aspx? Id = 1 qui correspondrait au fichier Users.aspx dans le chemin de mon application et l'ID d'envoi comme 1 , En général, nous ne souhaitons pas montrer ces noms de fichiers à notre utilisateur final.

Pour gérer les URL MVC, la plate-forme ASP.NET utilise le système de routage, qui vous permet de créer n'importe quel modèle d'URL de votre choix et de les exprimer de manière claire et concise. Chaque route dans MVC contient un modèle d'URL spécifique. Ce modèle d'URL est comparé à l'URL de la demande entrante et si l'URL correspond à ce modèle, il est utilisé par le moteur de routage pour traiter davantage la demande.

Format d'URL de routage MVC

Pour comprendre le routage MVC, considérez l'URL suivante -

http://servername/Products/Phones

Dans l'URL ci-dessus, Produits est le premier segment et Téléphone est le deuxième segment qui peut être exprimé dans le format suivant -

{controller}/{action}

Le framework MVC considère automatiquement le premier segment comme le nom du contrôleur et le deuxième segment comme l'une des actions à l'intérieur de ce contrôleur.

Note- Si le nom de votre contrôleur est ProductsController, vous ne mentionneriez les produits que dans l'URL de routage. Le framework MVC comprend automatiquement le suffixe Controller.

Créer un itinéraire simple

Les itinéraires sont définis dans le fichier RouteConfig.cs qui se trouve sous le dossier de projet App_Start.

Vous verrez le code suivant dans ce fichier -

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 } 
      ); 
   } 
}

Cette méthode RegisterRoutes est appelée par le Global.ascx au démarrage de l'application. La méthode Application_Start sous Global.ascx appelle cette fonction MapRoute qui définit le Controller par défaut et son action (méthode à l'intérieur de la classe Controller).

Pour modifier le mappage par défaut ci-dessus selon notre exemple, modifiez la ligne de code suivante -

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

Ce paramètre choisira le ProductsController et appellera la méthode Phone à l'intérieur. De même, si vous avez une autre méthode telle que l'électronique dans ProductsController, l'URL de celle-ci serait -

http://servername/Products/Electronics