Поделиться через


ASP0003. Не используйте атрибуты привязки модели с обработчиками маршрутов

Значение
Идентификатор правила ASP0003
Категория Использование
Исправление является критическим или не критическим Не критическое

Причина

Делегат обработчика маршрутов включает параметр, имеющий [Bind] атрибут.

Описание правила

Конечные точки обработчика маршрутов поддерживают только подмножество атрибутов MVC, например [FromRoute], [FromBody]и т. д. Неподдерживаемые атрибуты игнорируются и приводят к непредвиденному поведению привязки. Например, следующий код приводит к предупреждению анализатора:

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

Устранение нарушений

Чтобы устранить нарушение этого правила, убедитесь, что конечная точка использует один из разрешенных атрибутов привязки модели.

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

Когда лучше отключить предупреждения

Не подавляйте предупреждение из этого правила. Неправильная настройка привязки модели может привести к непредвиденному поведению при разрешении параметров во время выполнения.