JSON POST データを Web API のオブジェクトとして渡す
ASP.NET MVC4 Web API アプリケーションは、多くの場合、データ送信を処理する POST メソッドを定義します。リクエスト本文で JSON データを受信すると、開発者は POST パラメータが null に設定されるという問題に遭遇する可能性があります。これを解決するには、Content-Type とモデル バインディングを正しく使用することが重要です。
Content-Type:
デフォルトでは、ASP.NET は Content を使用します。 -タイプ: application/x-www-form-urlencoded。これは JSON データの送信には理想的ではありません。 JSON を指定するには、リクエスト ヘッダーで Content-Type: application/json を設定します。
モデル バインディング:
モデル バインディングを有効にするには、POST メソッド パラメーターを [ボディから]。この属性は、データが URL クエリ文字列ではなくリクエスト本文からバインドされる必要があることを指定します。
例:
この例では、コントローラー メソッドはリクエスト本文の顧客オブジェクト。 null 値の問題を解決するには、リクエスト ヘッダーで Content-Type: application/json を指定し、次のようにパラメーターを [FromBody] で修飾します。
public object Post([FromBody] Customer customer)
クライアント側では、JSON を使用します。 stringify を使用して、POST リクエストを送信する前に Customer オブジェクトを JSON 文字列に変換します。
複雑なオブジェクト:
ネストされたプロパティやリストを持つオブジェクトなど、より複雑なオブジェクトの場合、同じアプローチが適用されます。 JSON.stringify を使用して、クライアント側でオブジェクトをシリアル化し、正しい Content-Type ヘッダーが設定されていることを確認します。
トラブルシューティング:
モデル バインディングが正しく機能しない場合
以上がASP.NET MVC4 Web API でモデル バインディングを使用して JSON POST データを適切に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。