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 :

[cc lang= »csharp »]
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
[/cc]

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) :
  • [cc lang= »csharp »]
    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?} »);
    });
    }
    [/cc]

  • De manière déclarative, via des métadonnées sur les contrôleurs et leurs actions :
  • [cc lang= »csharp »]
    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();
    }
    }
    [/cc]

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.

Étiquettes : ,

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é.