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.