2016-03-20 6 views
0

Hallo Alle eine weitere Post-Anfrage ist Null-Problem. Ich habe auf alle diesbezüglichen Beiträge hingewiesen, die es verwirrender machten.WebAPI-Modell ist Null mit FromBodyAttribute beim Buchen mit Fiddler

Mein Problem ist, unter ich eine Entität Klasse

public class ProductEntity 
{ 
    public int ProductId { get; set; } 
    public string ProductName { get; set; } 
} 

und die Controller-Klasse haben

// POST api/product 
public int Post([FromBody]ProductEntity productEntity) 
{ 
    return _productServices.CreateProduct(productEntity); 
} 

I Fiedler mit diesen Optionen bin mit wie in der Abbildung unten gezeigt

Fiddler Options

Nach dem Versuch, einen Post von zu versuchen der fiddler bekomme ich immer null wert.

post from fiddler

folgte ich einen Beitrag und gemäß der Beschreibung, weil Produkt ist ein komplexer Typ I nicht FromBody Attribut, aber unabhängig davon ist ich nicht in der Lage zu bekommen, das Objekt stattdessen nur null übergeben wird immer verwendet werden soll.

Ich folgte sogar der msdn-Link für Parameter-Bindung-in-Aspnet-Web-API, wurde aber verwirrt. Bitte lassen Sie mich wissen, was ich falsch mache.

Antwort

1

Ihr Code ist richtig von dem, was ich sagen kann, aber was Sie in Fiddler Composer senden möchten, ist nicht gut geformte JSON, so dass Ihr Modell nicht geparst wird. Daher der Nullwert.

Dies ist, was Sie auf der Grundlage Ihrer angehängten Bild

{ 
"ProductId":8 
"ProductName":"MobilePhone" 
} 

Hinweis Sie ein Komma fehlt , nach dem "ProductId":8

hier zu senden versuchen, ist, was Sie

Senden sollte
{ 
"ProductId":8, 
"ProductName":"MobilePhone" 
} 
+0

Spot auf !! Ich habe dafür 2 bis 3 Stunden verschwendet !! Danke :) –

0

Endlich gelang es mir, einen POST mit Fiddler zu senden - ich musste

setzen
Content-Type: application/x-www-form-urlencoded 

im Request-Header und fügen Sie ein = vor der JSON-Anweisung:

={"Name":"Turbo Tina","Email":"[email protected]"} 

Ich war von diesem Beitrag über WCF und Fiddler inspiriert: POST to WCF from Fiddler succeeds but passes null values

Wenn ich anstelle der "einfachen" Typ string erwartet ein JObject in dem Verfahren:

public dynamic Post([FromBody]JObject value) 

ich verwenden kann

Content-Type: application/json 

und entfernen Sie das = vor der JSON-Anweisung.

+0

Ich habe das mit keinem Erfolg versucht !! –

Verwandte Themen