Compartir vía


ASP0003: No usar atributos de enlace de modelos con controladores de ruta

Valor
Identificador de la regla ASP0003
Categoría Uso
La corrección es problemática o no problemática Poco problemático

Causa

Un delegado del controlador de ruta incluye un parámetro que tiene un atributo [Bind].

Descripción de la regla

Los puntos de conexión del controlador de rutas solo admiten un subconjunto de atributos MVC, como [FromRoute], [FromBody], etc. Los atributos no admitidos se omiten y dan lugar a un comportamiento de enlace inesperado. Por ejemplo, el código siguiente da como resultado una advertencia del analizador:

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

Cómo corregir infracciones

Para corregir una infracción de esta regla, asegúrese de que el punto de conexión usa uno de los atributos de enlace de modelos permitidos.

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

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla. Una configuración incorrecta del enlace de modelos puede dar lugar a un comportamiento inesperado al resolver parámetros en tiempo de ejecución.