Freigeben über


ASP0004: Keine Aktionsergebnisse mit Routenhandlern verwenden

Wert
Regel-ID ASP0004
Kategorie Verwendung
Fix führt oder führt nicht zur Unterbrechung Nicht unterbrechend

Ursache

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

Regelbeschreibung

Endpunkte von Routenhandlern unterstützen die Ausführung von IActionResult-Instanzen von MVC nicht. Die Rückgabe eines IActionResult, das IResult nicht implementiert, führt dazu, dass die Ergebnisinstanz serialisiert wird, anstatt das Ergebnis auszuführen.

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

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, stellen Sie sicher, dass der Routenhandler des Endpunkts mithilfe der Results-Erweiterungsmethoden den Typ IResult 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 dazu, dass die Ergebnisinstanz serialisiert wird, anstatt das Ergebnis auszuführen.