2016-08-03 6 views
-1

Ich versuche, einige Daten zu einer Web-API-App aus einer eckigen 2 App zu posten. Es ist nur eine kleine JSON-Zeichenfolge und wenn ich den Web-API-Controller anklicke, ist das Element immer Null - egal was ich versucht habe.HttpPost zu Web-API ist immer ein Null-Parameter

Die json ist (I können die Daten von Alarmierungs sehen dies)

{"firstname":"Joe","lastname":"Bloggs"} 

Die Winkelfunktion ist

createUser(user: Profile): Observable<Response> { 

    let url = this.usersUrl; 
    let data = JSON.stringify(user); 
    let headers = new Headers({'Content-Type': 'application/json; charset=utf-8' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.post(url, data, options); 
} 

Die Bahn api conroller Methode ist:

[HttpPost] 
    public IActionResult Create(User item) 
    { 
     if (item == null) 
     { 
      return BadRequest(); 
     } 
     Users.Add(item); 
     return CreatedAtRoute("GetUser", new { id = item.Id }, item); 
    } 

aber Wenn ich den Punkt bei Create aufreiße, ist das Benutzerelement null.

Ich habe versucht:

public IActionResult Create([FromBody] User item) 

aber die Fehlermeldung in dem Chrome Konsolenfenster ist

Failed to load resource: the server responded with a status of 415 (Unsupported Media Type) 

Ich habe versucht

let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }); 

aber der Fehler ist die gleiche wie oben.

Irgendwelche Ideen? :)

+0

Verwenden Sie 'JSON.parse()' anstelle von 'JSON.stringify()' hier Lassen Sie Daten = JSON.stringify (Benutzer); Wenn du JSON String hast, benutze sonst nichts, lass nur Daten = Benutzer; – rashfmnb

+0

Funktioniert nicht.User ist eine Klasse mit Vornamen, Nachnameneigenschaften. Fehlermeldung - kompiliert den Typ nicht Profil kann nicht dem Parameter vom Typ string zugewiesen werden. – thegunner

+0

versuchen Sie diese Signatur für die Contorller-Methode public IHttpActionResult Create (JObject-Benutzer) – rashfmnb

Antwort

0

Ich stelle mir vor, dass Ihr Problem in api Ihr Benutzermodell ist.

Die Eigenschaften müssen genau gleich sein.

Können Sie freigegebene Netzwerkergebnis von Google Chrome Entwickler-Tools, können wir Ihnen leichter helfen.