次の方法で共有


ASP0003: ルート ハンドラーでモデル バインド属性を使用しない

価値
ルール識別子 ASP0003
カテゴリ Usage
修正が破壊的であるか非破壊的であるか Non-breaking

原因

ルート ハンドラー デリゲートには、 [Bind] 属性を持つパラメーターが含まれています。

ルールの説明

ルート ハンドラー エンドポイントは、 [FromRoute][FromBody]などの MVC 属性のサブセットのみをサポートします。サポートされていない属性は無視され、予期しないバインド動作が発生します。 たとえば、次のコードではアナライザーの警告が発生します。

app.MapGet("/todos/{id}", ([Bind] int id) => new Todo { Id = id });

違反を修正する方法

この規則の違反を修正するには、エンドポイントで許可されているモデル バインド属性のいずれかを使用していることを確認します。

app.MapGet("/todos/{id}", ([FromRoute] int id) => new Todo { Id = id });

警告を抑制するタイミング

このルールからの警告を抑制 しないでください 。 モデル バインドのセットアップが正しくないと、実行時にパラメーターを解決するときに予期しない動作が発生する可能性があります。