ASP0004 : Ne pas utiliser les résultats d'action avec les gestionnaires de routes

Value
Identificateur de la règle ASP0004
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture

Cause

Un délégué de gestionnaire d'itinéraire renvoie une valeur qui implémente IActionResult.

Description de la règle

Les points de terminaison du gestionnaire de route ne prennent pas en charge l’exécution des instances de IActionResult MVC. Le renvoi d’un IActionResult qui n’implémente pas IResult entraîne la sérialisation du résultat instance plutôt que l’exécution du résultat.

app.MapGet("/todos/{id}", (int id) => new JsonResult(new Todo { .. }));

Comment corriger les violations

Pour remédier à une violation de cette règle, assurez-vous que le gestionnaire de route du point final renvoie un IResulttype en utilisant les Results méthodes d'extension.

app.MapGet("/todos/{id}", (int id) => Results.Json(new Todo { .. }));

Quand supprimer les avertissements

Ne supprimez pas un avertissement de cette règle. Le renvoi d’un IActionResult qui n’implémente pas IResult entraîne la sérialisation du résultat instance plutôt que l’exécution du résultat.