Pas de MediaTypeFormatter est disponible à la lecture d'un objet de type 'InventoryItem'

Appel 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);
        }
    }
});

Données Envoyées (json) /Demande De Charge Utile

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

Erreur De Réponse

Pas MediaTypeFormatter est disponible à la lecture d'un objet de type
'InventoryItem' à partir du contenu avec les médias de type "undefined"."

Acheminé méthode POST

public HttpResponseMessage PostItem(InventoryItem item)

Toutes les propriétés de la chaîne JSON sont présents dans le InventoryItem modèle.

Un question similaire concernant les types complexes suggéré la mise à niveau de version Beta et la version RC de fixer un modèle de liaison de changement, qui je l'ai fait.

Si la question n'est pas évidente, comment puis-je rectifier cette erreur? Si j'ajoute l' [FromUri] attribut à la Routé méthode POST, puis de l'appel AJAX est acheminé correctement, mais avec un vide InventoryItem. Si vous avez besoin d'autres informations, s'il vous plaît laissez-moi savoir.

OriginalL'auteur Josh | 2012-06-24