Keine MediaTypeFormatter Lesen eines Objekts vom Typ 'InventoryItem'
AJAX-Call
$.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);
}
}
});
Gesendeten Daten (json
) /Anfrage-Payload
{"Id":0,"Upc":"3456789012","Quantity":"200","Category":"Vodka","TransactionType":"Audit","MetaData":"ABSOLUT 750ml"}
Antwort Fehler
Kein MediaTypeFormatter Lesen Sie ein Objekt vom Typ
'InventoryItem" von Inhalten mit dem media-Typ "undefined"."
Geleitet POST-Methode
public HttpResponseMessage PostItem(InventoryItem item)
Alle Eigenschaften, die in den JSON-string in der InventoryItem
Modell.
Einen ähnliche Frage zu komplexen Typen vorgeschlagen das Upgrade von Beta auf RC zu beheben, ein Modell verbindlich zu ändern, was ich getan habe.
Wenn die Frage nicht offensichtlich ist, wie kann ich das beheben dieser Fehler? Wenn ich die die [FromUri] - Attribut auf die weitergeleitete POST-Methode, dann wird der AJAX-Aufruf weitergeleitet wird, richtig, aber mit einem leeren InventoryItem
. Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
werden sollte:
Beachten Sie die Verwendung von
;
statt,
welches ist das richtige Trenner zwischen den content-type und charset. Auch wenn Sie Folgen Sie den standard-Erholsamen Konventionen Ihrer controller-action aufgerufen werden sollPost
und nichtPostItem
als Sie gezeigt haben:POST
Aktion warPostProduct
. Jedoch, die semi-colon hat es zu beheben! Ich danke Ihnen sehr.api/{controller}/{id}
. Wie Sie sehen können den Namen der Aktion ist nicht Teil der url, was bedeutet, dass die richtige Aktion gewählt wird auf der Basis der HTTP-verb verwendet, um die Anforderung durchzuführen. Aber egal, das ist nicht im Zusammenhang zu deinem problem. Ihr problem ergibt sich aus vorbei an einem falschen Wert für den Content-Type-HTTP-header.Post
oderDelete
im Gegensatz zuPostItem
oderDeleteItem
?