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 });
どのようなときに警告を抑制するか
このルールからの警告は抑制しないでください。 モデル バインドの設定が正しくないと、実行時にパラメーターを解決するときに予期しない動作が発生する可能性があります。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
ASP.NET Core