Je ne peux pas utiliser un routage simple comme dans .NET Core 2.2 dans .NET Core 3.1.
Quelle est la dernière modification de routage dans .NET Core 3.1?
Dans .NET 3, vous devez utiliser Endpoint au lieu de Routing
app.UseStaticFiles();
app.UseRouting();
//other middleware
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapHub<MyChatHub>();
endpoints.MapGrpcService<MyCalculatorService>();
endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
});
À côté de Endpoint, vous pouvez également utiliser le routage d'attributs ou combiner les deux.
[Route("my/")]
public class MyController : Controller
[HttpGet]
[AllowAnonymous]
[Route("")] //prefer this if we asked for this action
[Route("index", Order = 1)]
[Route("default.aspx", Order = 100)] // legacy might as well get an order of 100
public async Task<IActionResult> GetIndex()
{
}
Avec l'attribut ci-dessus pour le contrôleur, vous n'avez pas besoin de spécifier MapControllerRoute pour ce contrôleur. L'action comporte trois itinéraires dans cet exemple.