2を結合Web APIをモデル

[ https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.2 ]  

モデルの検証エラーを作成する1.ApiControllerプロパティが自動的にHTTP400応答を引き起こします。したがって、認証がModelState.IsValidを必要とされていません。400個の行為を無効にするには、SuppressModelStateInvalidFilterプロパティがtrueに設定する必要があります。

Services.AddMvc >>>()
    .SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
    .ConfigureApiBehaviorOptions(オプション=> {
      options.SuppressModelStateInvalidFilter = trueに;
    });

2.またはそのような特性ApiController [FromQuery]バインディングソースプロパティ場合、ASP。ネットコアは、バインダーが実行されている複雑なオブジェクトモデルを使用しようとします。値からプロバイダによって定義されたバインダー複雑なオブジェクトモデルは、順次データを引っ張ります。
ApiController推論規則は、デフォルトの動作パラメータデータソースの属性に適用されます。これらの規則では、属性は、バインディングソース識別手動で操作するパラメータによって適用する必要はありません。
  推論のための【FromBody】複合型パラメータ。しかし、それは特別な意味を持つ複雑なビルトインタイプ、および、そのようなIFormCollection CancellationTokenには適用されません。
  【FromForm] IFormFile IFormFileCollectionタイプと動作パラメータの推論。
  【FromRoute]パラメータに一致するテンプレート名をルーティング任意の動作パラメータのために推測すること。
  【FromQuery】任意の他の動作パラメータのために推測すること。
バインディングソースの推論を無効にするには、trueに設定SuppressInferBindingSourcesForParametersする必要があります。
>>> services.AddMvc()
    .SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
    .ConfigureApiBehaviorOptions(オプション=> {
      options.SuppressInferBindingSourcesForParametersの= trueに;
    });
[注意] asp.netのcore2.1、セットタイプのパラメータ(例えば、リストと配列)においては、誤って推測されますFromQuery。これらのパラメータFromBodyプロパティに対処するための要求本体からパラメータをバインドします。この動作は、asp.netまたはそれ以降のバージョンであるcare2.2
セットタイプは、本体から拘束されることに推測されており、修正します。

おすすめ

転載: www.cnblogs.com/az4215/p/10957354.html