aspnetcore/diagnostics/asp0004.md
| Value | |
|---|---|
| Rule ID | ASP0004 |
| Category | Usage |
| Fix is breaking or non-breaking | Non-breaking |
A route handler delegate returns a value that implements xref:Microsoft.AspNetCore.Mvc.IActionResult.
Route handler endpoints do not support executing MVC's IActionResult instances. Returning an IActionResult that doesn't implement IResult results in serializing the result instance rather than executing the result.
app.MapGet("/todos/{id}", (int id) => new JsonResult(new Todo { .. }));
To fix a violation of this rule, make sure that endpoint's route handler returns an xref:Microsoft.AspNetCore.Http.IResult type by using the xref:Microsoft.AspNetCore.Http.Results extension methods.
app.MapGet("/todos/{id}", (int id) => Results.Json(new Todo { .. }));
Do not suppress a warning from this rule. Returning an IActionResult that doesn't implement IResult results in serializing the result instance rather than executing the result.