ホームページ >ウェブフロントエンド >jsチュートリアル >JSON POST データをオブジェクトとして ASP.NET MVC4 の Web API メソッドに渡す方法

JSON POST データをオブジェクトとして ASP.NET MVC4 の Web API メソッドに渡す方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-09 14:13:02344ブラウズ

How to Pass JSON POST Data as an Object to a Web API Method in ASP.NET MVC4?

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 データとして送信されていることを確認します。

トラブルシューティング:

  • 一部のプロパティではモデル バインディングが機能するが、他のプロパティでは機能しない場合は、アクション メソッドのパラメーターが [FromBody] で修飾されているかどうかを確認してください。
  • Content-Type を明示的に設定していない場合は、クライアント側でコードは正しいメソッドを使用しています (例: contentType が「application/json」に設定された $.ajax)。

以上がJSON POST データをオブジェクトとして ASP.NET MVC4 の Web API メソッドに渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。