Partager via


ASP0004 : n’utilisez pas les résultats d’action avec des gestionnaires de routage

Valeur
Identificateur de la règle ASP0004
Catégorie Usage
Le correctif est cassant ou non cassant Non-breaking

La cause

Un délégué de gestionnaire de routage retourne une valeur qui implémente IActionResult.

Description de la règle

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

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

Comment corriger les violations

Pour corriger une violation de cette règle, assurez-vous que le gestionnaire de routage du point de terminaison retourne un type IResult à l’aide des méthodes d’extension Results.

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

Quand supprimer les avertissements

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