| 価値 | |
|---|---|
| ルール識別子 | ASP0004 |
| カテゴリ | Usage |
| 修正が破壊的であるか非破壊的であるか | Non-breaking |
原因
ルート ハンドラー デリゲートは、 IActionResultを実装する値を返します。
ルールの説明
ルート ハンドラー エンドポイントは、MVC の IActionResult インスタンスの実行をサポートしていません。
IActionResult実装されていないIResultを返すと、結果を実行するのではなく、結果インスタンスをシリアル化します。
app.MapGet("/todos/{id}", (int id) => new JsonResult(new Todo { .. }));
違反を修正する方法
この規則の違反を修正するには、エンドポイントのルート ハンドラーが、IResult拡張メソッドを使用してResults型を返すことを確認します。
app.MapGet("/todos/{id}", (int id) => Results.Json(new Todo { .. }));
警告を抑制するタイミング
このルールからの警告を抑制 しないでください 。
IActionResult実装されていないIResultを返すと、結果を実行するのではなく、結果インスタンスをシリアル化します。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
ASP.NET Core