ASP0004: non usare i risultati delle azioni con i gestori di route

Valore
ID regola ASP0004
Categoria Utilizzo
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione

Causa

Un delegato del gestore di route restituisce un valore che implementa IActionResult.

Descrizione regola

Gli endpoint del gestore di route non supportano l'esecuzione delle istanze di IActionResult MVC. La restituzione di un oggetto IActionResult che non implementa IResult comporta la serializzazione dell'istanza del risultato anziché l'esecuzione del risultato.

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

Come correggere le violazioni

Per correggere una violazione di questa regola, assicurarsi che il gestore di route dell'endpoint restituisca un IResult tipo usando i Results metodi di estensione.

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

Quando eliminare gli avvisi

Non eliminare un avviso da questa regola. La restituzione di un oggetto IActionResult che non implementa IResult comporta la serializzazione dell'istanza del risultato anziché l'esecuzione del risultato.