ASP .NET Core MVC – Le routage

Dans une application ASP .NET Core MVC, le routage est un mécanisme permettant d’exécuter une action (une méthode) d’un contrôleur (d’une classe), à partir d’informations contenues dans une requête HTTP.

Pour mettre en œuvre le routage, nous devons commencer par ajouter un service permettant de gérer le routage. Dans le fichier Startup.cs :

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
}

Puis, pour définir les règles de routage, deux scénarios nous sont proposés :

  • De manière impérative (toujours dans le fichier Startup.cs) :
  • public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }
  • De manière déclarative, via des métadonnées sur les contrôleurs et leurs actions :
  • public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseMvc();
    }

    [Route("/[controller]")]
    public class HomeController : Controller
    {
        [Route("[action]/{id?}")]
        public IActionResult Index(int? id)
        {
            return View();
        }
    }

Peu importe la manière utilisée pour implémenter le routage, si un utilisateur envoie une requête avec une URL du type http:////Home/Index/10, alors l’action (la méthode) Index du contrôleur Home acceptant un id en paramètre sera exécutée.

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.