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


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

Ценность
Идентификатор правила ASP0004
Категория Usage
Исправление является разрушающим или неразрушающим Non-breaking

Причина

Делегат обработчика маршрутов возвращает значение, реализующее IActionResult.

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

Конечные точки обработчика маршрутов не поддерживают выполнение экземпляров MVC IActionResult . Возврат IActionResult, который не реализует IResult, приводит к сериализации экземпляра результата вместо выполнения результата.

app.MapGet("/todos/{id}", (int id) => new JsonResult(new Todo { .. }));

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

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

app.MapGet("/todos/{id}", (int id) => Results.Json(new Todo { .. }));

Когда следует подавлять предупреждения

Не подавляйте предупреждение согласно этому правилу. Возвращение IActionResult, который не реализует IResult, приводит к сериализации экземпляра результата, а не к выполнению результата.