Saya mencoba memposting beberapa parameter pada pengontrol WebAPI. Satu param adalah dari URL, dan yang lainnya dari tubuh. Ini urlnya:
/offers/40D5E19D-0CD5-4FBD-92F8-43FDBB475333/prices/
Ini kode pengontrol saya:
public HttpResponseMessage Put(Guid offerId, OfferPriceParameters offerPriceParameters)
{
//What!?
var ser = new DataContractJsonSerializer(typeof(OfferPriceParameters));
HttpContext.Current.Request.InputStream.Position = 0;
var what = ser.ReadObject(HttpContext.Current.Request.InputStream);
return new HttpResponseMessage(HttpStatusCode.Created);
}
Konten tubuh ada di JSON:
{
"Associations":
{
"list": [
{
"FromEntityId":"276774bb-9bd9-4bbd-a7e7-6ed3d69f196f",
"ToEntityId":"ed0d2616-f707-446b-9e40-b77b94fb7d2b",
"Types":
{
"list":[
{
"BillingCommitment":5,
"BillingCycle":5,
"Prices":
{
"list":[
{
"CurrencyId":"274d24c9-7d0b-40ea-a936-e800d74ead53",
"RecurringFee":4,
"SetupFee":5
}]
}
}]
}
}]
}
}
Adakah yang tahu mengapa pengikatan default tidak dapat mengikat offerPriceParametersargumen controller saya? Itu selalu diatur ke nol. Tetapi saya dapat memulihkan data dari tubuh menggunakan DataContractJsonSerializer.
Saya juga mencoba menggunakan FromBodyatribut argumen tetapi tidak berhasil juga.
