ASP0003 : Ne pas utiliser les attributs de liaison de modèle avec les gestionnaires de route
Value | |
---|---|
Identificateur de la règle | ASP0003 |
Catégorie | Utilisation |
Le correctif est cassant ou non cassant | Sans rupture |
Cause
Un délégué de gestionnaire de la route comprend un paramètre doté d'un attribut [Bind]
.
Description de la règle
Les points de terminaison des gestionnaires de routes ne prennent en charge qu'un sous-ensemble d'attributs MVC tels que [FromRoute]
, [FromBody]
, etc. Les attributs non pris en charge sont ignorés et entraînent un comportement de liaison inattendu. Par exemple, le code suivant entraîne un avertissement de l'analyseur :
app.MapGet("/todos/{id}", ([Bind] int id) => new Todo { Id = id });
Comment corriger les violations
Pour remédier à une violation de cette règle, assurez-vous que le point de terminaison utilise l'un des attributs de liaison de modèle autorisés.
app.MapGet("/todos/{id}", ([FromRoute] int id) => new Todo { Id = id });
Quand supprimer les avertissements
Ne supprimez pas un avertissement de cette règle. Une configuration incorrecte de la liaison de modèle peut entraîner un comportement inattendu lors de la résolution des paramètres au moment de l'exécution.