2016-06-30 20 views
0

Ich benutze Web Api mit .Net Core. Ich habe einen Cass, der wie folgt aussieht:Model Binder im Web Api bindet meine Fiddler Json Post Anfrage nicht

public class Event 
{ 
    public int Id { get; set; } 
    public int? ParentId { get; set; } 
} 

Dann habe ich meine Aktion in einem Controller wie folgt aus:

[HttpPost] 
    public void Post([ModelBinder] Event evt) 
    { 
    } 

Dann komponiere ich eine Postanforderung mit Fiddler, der wie folgt aussieht:

User-Agent: Fiddler 
Host: localhost:8186 
Content-Length: 35 
Content-Type: application/json; charset=utf-8 

{ 
"Id":"1", 
"ParentId":"0", 
} 

Jetzt, wenn der Haltepunkt meine Aktion trifft, bindet der Modellbinder mein Objekt nicht! Was hätte schiefgehen können?

Antwort

1

Geben Sie das Attribut [FromBody] statt:

[HttpPost] 
public IActionResult Post([FromBody] Event e) 
{ 
    return Ok(e); 
} 

Dies richtig zu Ihrem Modell binden, wenn Sie json Anfragen senden.

+0

Es funktionierte in meiner Pilotanwendung. Aber nachdem ich mein Projekt zur Hauptlösung verschmolzen hatte, hörte es auf zu arbeiten! Der Ereignisparameter ist null. und ich bekomme einen http 502 Fehler zurück. und ich habe keine Ahnung, was schief gelaufen ist !! – Pouyan

+0

Es könnte etwas in Ihrem 'Startup.cs' explodieren. Ich denke, du solltest eine neue Frage stellen. – peco