次の方法で共有


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

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

原因

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

規則の説明

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

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

違反の修正方法

このルールの違反を修正するには、エンドポイントが許可されたモデル バインディング属性の 1 つを使用していることを確認してください。

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

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

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