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
を返すと、結果は実行されず、結果インスタンスがシリアル化されます。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
ASP.NET Core