ASP.NET MVC4 Web API アプリケーションで、顧客データを POST で JSON として渡そうとすると、一般的な問題が発生します。リクエストを実行すると、顧客プロパティの null 値が返されます。これを解決するには、正しいアプローチを理解する必要があります。
当初、デフォルトのコンテンツ タイプとして「Content-Type: application/x-www-form-urlencoded」を使用することが提案されていました。ただし、このアプローチは、複雑なオブジェクトのバインディングで問題が発生する可能性があるため、推奨されなくなりました。
適切なオブジェクト バインディングを確保するには、「」を利用する必要があります。 application/json」をコンテンツ タイプとして指定します。これにより、JSON データを送信することがサーバーに指示され、モデル バインダーが JSON オブジェクトを対応するクラス オブジェクトに正しくバインドできるようになります。
コード スニペット:
var customer = {contact_name :"Scott",company_name:"HP"}; $.ajax({ type: "POST", data :JSON.stringify(customer), url: "api/Customer", contentType: "application/json" });
説明:
「application/json」を使用することで、送信するデータが JSON 形式であることをサーバーに明示的に通知します。これにより、モデル バインダーが JSON データを Customer オブジェクトに逆シリアル化できるようになり、アクション メソッドが null 値なしで顧客プロパティにアクセスできるようになります。
モデル クラスが複雑で、ネストされたオブジェクトを含む場合は、送信する JavaScript オブジェクトがビュー モデル クラスの構造と一致することを確認する必要があります。これにより、モデル バインダーはネストされたオブジェクトも正しくバインドできるようになります。
一部のプロパティが正しくバインドされていない場合は、アクション メソッドのパラメーターが [FromBody] で修飾されていることを確認してください。属性。この属性は、リクエスト本文内のデータを検索するようにモデル バインダーに指示します。さらに、短い形式の $.post は使用しないでください。デフォルトのコンテンツ タイプが使用され、部分的なバインディングの問題が発生する可能性があります。
これらのガイドラインに従うことで、JSON データを POST リクエストのオブジェクトとして効果的に渡すことができます。これにより、ポストされたデータが ASP.NET MVC4 Web API アプリケーションの適切なクラス オブジェクトに正しくバインドされるようになります。
以上がASP.NET MVC4 Web API アプリケーションの POST リクエストで JSON データをオブジェクトとして渡すときに、適切なオブジェクト バインディングを確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。