Compartilhar via


ASP0004: não usar resultados de ação com manipuladores de rota

Value
ID da regra ASP0004
Categoria Usage
Correção é disruptiva ou não disruptiva Non-breaking

Motivo

Um delegado do manipulador de rotas retorna um valor que implementa IActionResult.

Descrição da regra

Os pontos de extremidade do manipulador de rotas não dão suporte à execução das instâncias do IActionResult MVC. Retornar um IActionResult que não implementa IResult resulta na serialização da instância do resultado em vez de executar o resultado.

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

Como corrigir violações

Para corrigir uma violação dessa regra, assegure-se de que o manipulador de rotas do endpoint retorne um tipo IResult usando os métodos de extensão Results.

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

Quando suprimir avisos

Não suprimir um aviso desta regra. Retornar um IActionResult que não implementa IResult resulta na serialização da instância do resultado em vez de executar o resultado.