Zunächst einmal werde ich anerkennen, dass es viele Fragen in der Nähe meines hier gibt, aber ich habe jede Lösung ausprobiert, die ich auf SO finden kann bin immer noch fest.http.post Einfaches Objekt von angularJS bis C# Web api entweder null oder alle Eigenschaften sind null
Meine Service-Methode in meinem service.js ist wie folgt, mit Kommentaren;
postSimpleObject: function() {
// Have tried this first, and have passed
// as JSON.stringify(simpleObject)
var simpleObject = {
name: "J Doe",
colour: "Red"
};
// tried to pass this next
var simplerObject = '{ "Name": "J Done", "Colour":"Red"}';
// escaped the quotations and tried this next
var simplerObject2 = '{ \"Name\": \"J Done\", \"Colour\":\"Red\"}';
return $http.post(apiUrl + "PostSimpleObject?item=" + JSON.stringify(simpleObject), {
headers: {
'Content-Type': 'application/json'
}
});
}
Hier ist meine API-Controller-Funktion auf der API-Seite;
public class CrudUserApiController : ApiController
{
[System.Web.Http.HttpPost]
public void PostSimpleObject(SimpleObject item)
{
var itemReceived = item;
}
}
meine einfache Objektklasse, auf der Api-Seite;
public class SimpleObject
{
public string Name { get; set; }
public string Colour { get; set; }
}
Nun, was passiert ist;
- Die API-Methode ausgelöst wird, kann der Routing-Controller und ein Verfahren lokalisieren
- Das Modell/empfangene Objekt eine neue SimpleObject für beide Mitglieder mit null Eigenschaften ist
Gemäß den Ausführungen in der Ich habe versucht, ein Stringed-Objekt, eine JSON-Zeichenfolge und eine Escape-JSON-Zeichenfolge zu übergeben.
Auch auf der API-Seite habe ich versucht, mit dem [FromBody] -Attribut vor dem SimpleObject-Argument in der Signatur. Das Gleiche passiert.
Ich bin total verloren, würde einige Hilfe sehr geschätzt werden. Vielen Dank.
Warum die Daten an die URI anhängen? Hast du das hier probiert? http://stackoverflow.com/a/20226220/5724584 – Vahid
haben Sie versucht, '$ http.post (apiUrl + "PostSimpleObject", simpleObject, { Header: { 'Content-Type': 'application/json' } '? – eminlala
Gibt es einen Grund, warum Sie Ihre Daten als Parameter übergeben (namens' item')? – lealceldeiro