ホームページ  >  記事  >  ウェブフロントエンド  >  ASP.NET MVC4 Web API でモデル バインディングを使用して JSON POST データを適切に処理する方法

ASP.NET MVC4 Web API でモデル バインディングを使用して JSON POST データを適切に処理する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-08 01:02:03266ブラウズ

How to Properly Handle JSON POST Data with Model Binding in ASP.NET MVC4 Web API?

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 ヘッダーが設定されていることを確認します。

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

モデル バインディングが正しく機能しない場合

  • [FromBody] がメソッド パラメーターに適用されていることを確認してください。
  • リクエストの Content-Type ヘッダーが application/json に設定されていることを確認してください。
  • >
  • モデル クラスがクライアント側とサーバー側の両方で予期されるデータ構造と一致するかどうかを確認します。

以上がASP.NET MVC4 Web API でモデル バインディングを使用して JSON POST データを適切に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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