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.