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.