Partager via


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.