Freigeben über


ASP0004: Verwenden Sie keine Aktionsergebnisse mit Routenhandlern.

Wert
Regel-ID ASP0004
Kategorie Verwendung
Korrektur ist blockierend oder nicht-blockierend Untrennbar

Ursache

Ein Routinghandlerdelegat gibt einen Wert zurück, der IActionResult implementiert.

Regelbeschreibung

Routinghandlerendpunkte unterstützen die Ausführung der IActionResult MVC-Instanzen nicht. Die Rückgabe eines IActionResult, das IResult nicht implementiert, führt zur Serialisierung der Ergebnisinstanz anstatt zur Ausführung des Ergebnisses.

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

Wie man Verstöße behebt

Um einen Verstoß gegen diese Regel zu beheben, stellen Sie sicher, dass der Routenhandler des Endpunkts einen IResult Typ mithilfe der Results Erweiterungsmethoden zurückgibt.

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

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel. Die Rückgabe eines IActionResult, das IResult nicht implementiert, führt zur Serialisierung der Ergebnisinstanz anstatt zur Ausführung des Ergebnisses.