JSON POST データをオブジェクトとして Web API メソッドに渡す
ASP.NET MVC4 Web API では、次のようなシナリオが発生する可能性があります。 JSON データを含む POST リクエストは、オブジェクトとしてアクション メソッドに渡す必要があります。ただし、適切に構成しないと、アクション メソッドのパラメーターに null プロパティが含まれる可能性があります。この問題を解決するには、次の手順を実行する必要があります。
1. Content-Type を「application/json」として指定します:
リクエストを送信するときは、Content-Type ヘッダーが「application/json」に設定されていることを確認してください。これにより、データが JSON 形式であることがサーバーに通知されます。
2. JSON.stringify メソッドを使用します:
クライアント側のコードで、JSON.stringify メソッドを使用して JSON データを JSON 文字列に変換します。この手順は、モデル バインダーが JSON データをクラス オブジェクトにバインドするために重要です。
例:
var customer = { contact_name: "Scott", company_name: "HP" }; $.ajax({ type: "POST", data: JSON.stringify(customer), url: "api/Customer", contentType: "application/json" });
3.アクションメソッドのパラメータを[FromBody]で装飾する:
Web APIのアクションメソッドで、JSONデータを受け取るパラメータを[FromBody]で装飾します。この属性は、データがリクエスト本文からバインドされる必要があることを示します。
例:
public IActionResult Post([FromBody] Customer customer) { // ... }
4.複雑なオブジェクトのポスト:
ビュー モデル クラスに複雑なプロパティ (リストやネストされたクラスなど) が含まれている場合も、同じ原則が適用されます。クライアント側のコードがクラスの構造と一致するオブジェクトを構築し、それが正しい Content-Type を持つ JSON データとして送信されていることを確認します。
トラブルシューティング:
以上がJSON POST データをオブジェクトとして ASP.NET MVC4 の Web API メソッドに渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。