Guillaume Lacasa
Les bases d’ASP.NET MVC
Découvrez avec ASP.NET MVC une nouvelle façon de créer des sites webs de manière structurée suivant le pattern Modèle-Vue-Contrôleur.
Par Guillaume Lacasa publié le 14/10/2009 à 21:48, lu 2064 fois, 7 pages
 3 | Routing
Il est important de comprendre le fonctionnement du routage d’URL. Les développeurs WebForms ont l’habitude d’avoir une URL qui corresponde au chemin d’un fichier aspx. Avec MVC, ce n’est plus le cas : une URL doit appeler une action dans un contrôleur. Il a donc fallu définir de quelle manière trouver l’action associée à une URL. Pour cela, le module de routing a été créé, le routage des URL est défini dans le fichier Global.asax :

public static void RegisterRoutes(RouteCollection routes)

{

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

 

    routes.MapRoute(

        "Default",

        "{controller}/{action}/{id}",

        new { controller = "Home", action = "Index", id = "" }

    );

}

On peux ajouter autant de nouvelles routes qu’on le souhaite en appelant routes.MapRoute avec les paramètres :
  • name : nom de la route (doit être unique)
  • url : définit le format de l’url. Peut contenir (mais pas obligatoirement) le nom du contrôleur et de l’action à appeler. On peut aussi définir les différents paramètres dont l’action a besoin.
  • defaults : les valeurs par défaut dans le cas où l’url ne contient pas toutes les valeurs.
Exemple : l’url /Pages/Details/5 va appeler l’action « Details » dans le contrôleur « PagesController » et lui faire passer le paramètre id avec la valeur 5. Si un utilisateur va sur l’url /Pages/, il va appeler le contrôleur « PagesController », et l’action n’étant pas définir dans l’url, l’action par défaut « Index » va être appelée.
L’intérêt de ce module de Routing, outre le fait de savoir à quoi doit correspondre une URL, est qu’il permets d’avoir des URL propres. Cela a plusieurs avantages :
  • Le référencement  : les moteurs de recherche se basent souvent sur les URL pour indexer le contenu de votre site. En effet, pour les bots qui parcourent votre site, « Page.aspx?id=1 » et « Page.aspx?id=2 » sont une seule et même page, « Page.aspx » avec un paramètre. Avec ce module de routing, on aura des URL de type « /Page/1 » et « /Page/2 » qui seront considérées comme 2 pages distinctes.
  • L’expérience utilisateur  : une URL bien structurée permettra à vos utilisateurs de voir d’un coup d’œil dans quelles sections/sous-sections il se trouve sur votre site (une sorte de fil d’ariane intuitif). Et grâce à la gestion des valeurs par défaut, il pourra en supprimant la fin de l’url remonter aux sections supérieures.
Là où on était obligé d’utiliser des modules de réécriture d’URL pour arriver à ce but, on a maintenant une gestion des URL au cœur de notre site, ce qui en simplifie l’utilisation en supprimant une surcouche.
 
» Démarrer une discussion