Share via


ASP0004: ルート ハンドラーでアクションの結果を使用しない

Value
ルール ID ASP0004
[カテゴリ] 使用法
修正が中断ありか中断なしか なし

原因

ルート ハンドラー デリゲートは、IActionResult を実装する値を返します。

規則の説明

ルート ハンドラー エンドポイントは、MVC の IActionResult インスタンスの実行をサポートしていません。 IResult を実装していない IActionResult を返すと、結果は実行されず、結果インスタンスがシリアル化されます。

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

違反の修正方法

このルールの違反を修正するには、エンドポイントのルート ハンドラーが Results 拡張メソッドを使用して IResult 型を返すようにします。

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

どのようなときに警告を抑制するか

このルールからの警告は抑制しないでください。 IResult を実装していない IActionResult を返すと、結果は実行されず、結果インスタンスがシリアル化されます。