Tôi đang cố gắng đăng nhiều tham số trên bộ điều khiển WebAPI. Một param là từ URL, và cái kia từ cơ thể. Đây là url:
/offers/40D5E19D-0CD5-4FBD-92F8-43FDBB475333/prices/
Đây là mã điều khiển của tôi:
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);
}
Nội dung của phần thân là trong 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
}]
}
}]
}
}]
}
}
Bất cứ ý tưởng tại sao ràng buộc mặc định không thể liên kết với offerPriceParameters
đối số của bộ điều khiển của tôi? Nó luôn được đặt thành null. Nhưng tôi có thể phục hồi dữ liệu từ cơ thể bằng cách sử dụng DataContractJsonSerializer
.
Tôi cũng cố gắng sử dụng FromBody
thuộc tính của đối số nhưng nó cũng không hoạt động.