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) :
- 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(routes =>
{
routes.MapRoute(
name: « default »,
template: « {controller=Home}/{action=Index}/{id?} »);
});
}
[/cc]
[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://