8

AJAXコール

$.ajax({
    url: '/api/Inventory',
    cache: false,
    type: 'POST',
    data: json,
    contentType: 'application/json, charset=utf-8',
    statusCode: {
        201: function (data) {
            console.log(data);
            viewModel.items.push(data);
        }
    }
});

送信されたデータ(json)/ペイロードの要求

{"Id":0,"Upc":"3456789012","Quantity":"200","Category":"Vodka","TransactionType":"Audit","MetaData":"ABSOLUT 750ml"} 

応答エラー

メディアタイプ「undefined」のコンテンツからタイプ「InventoryItem」のオブジェクトを読み取るために使用できるMediaTypeFormatterはありません。

ルーティングされたPOSTメソッド

public HttpResponseMessage PostItem(InventoryItem item)

JSON文字列のすべてのプロパティがInventoryItemモデルに存在します。

複合型に関する同様の質問は、モデルバインディングの変更を修正するためにベータからRCにアップグレードすることを提案しました。これは私が行ったものです。

質問が明確でない場合、このエラーを修正するにはどうすればよいですか?[FromUri]属性をRoutedPOSTメソッドに追加すると、AJAX呼び出しは適切にルーティングされますが、は空になりInventoryItemます。他にご不明な点がございましたら、お気軽にお問い合わせください。

4

1 に答える 1

19
contentType: 'application/json, charset=utf-8',

する必要があります:

contentType: 'application/json; charset=utf-8',

;代わりに,、コンテンツタイプと文字セットの間の正しい区切り文字の使用法に注意してください。また、標準のRESTful規則に従う場合は、示されているようにPostではなく、コントローラーアクションを呼び出す必要があります。PostItem

public HttpResponseMessage Post(InventoryItem item)
{
    ...
}
于 2012-06-24T19:58:37.180 に答える