ฉันกำลังพยายามโพสต์หลายพารามิเตอร์ในตัวควบคุม WebAPI หนึ่งพารามิเตอร์มาจาก URL และอีกอันจากเนื้อหา นี่คือ URL:
/offers/40D5E19D-0CD5-4FBD-92F8-43FDBB475333/prices/
นี่คือรหัสควบคุมของฉัน:
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);
}
เนื้อหาของร่างกายอยู่ใน 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
}]
}
}]
}
}]
}
}
ความคิดใด ๆ ที่ว่าทำไมการผูกพันเริ่มต้นไม่สามารถผูกกับofferPriceParameters
อาร์กิวเมนต์ของตัวควบคุมของฉันได้? มันถูกตั้งค่าเป็นศูนย์เสมอ DataContractJsonSerializer
แต่ผมสามารถกู้คืนข้อมูลจากร่างกายโดยใช้
ฉันพยายามใช้FromBody
คุณลักษณะของอาร์กิวเมนต์ แต่ก็ใช้ไม่ได้เช่นกัน