Partager via


ASP0003 : n’utilisez pas d’attributs de liaison de modèle avec des gestionnaires de routage

Valeur
Identificateur de la règle ASP0003
Catégorie Utilisation
Le correctif est cassant ou non cassant Inaltérable

Raison

Un délégué de gestionnaire de routage inclut un paramètre qui a un attribut [Bind].

Description de la règle

Les points de terminaison du gestionnaire de routage prennent uniquement en charge 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 génère un avertissement d’analyseur :

app.MapGet("/todos/{id}", ([Bind] int id) => new Todo { Id = id });

Comment corriger les violations

Pour corriger 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 de liaison de modèle incorrecte peut entraîner un comportement inattendu lors de la résolution des paramètres au moment de l’exécution.