ASP0004: 不要对路由处理程序使用动作结果

价值
规则 ID ASP0004
类别 Usage
修复是中断修复还是非中断修复 Non-breaking

原因

路由处理程序委托返回实现 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实例将导致对结果实例进行序列化,而不是其执行。