ASP0004:不要将操作结果与路由处理程序一起使用

规则 ID ASP0004
类别 使用情况
修复是中断修复还是非中断修复 非中断

原因

路由处理程序委托返回实现 IActionResult 的值。

规则说明

路由处理程序终结点不支持执行 MVC 的 IActionResult 实例。 返回未实现 IResultIActionResult 将导致序列化结果实例而不是执行结果。

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

如何解决冲突

要修复违反此规则的问题,请确保终结点的路由处理程序使用 Results 扩展方法返回 IResult 类型。

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

何时禁止显示警告

不禁止显示此规则发出的警告。 返回未实现 IResultIActionResult 将导致序列化结果实例而不是执行结果。