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
내 컨트롤러 의 인수에 바인딩 할 수없는 이유는 무엇입니까? 항상 null로 설정됩니다. 그러나를 사용하여 신체에서 데이터를 복구 할 수 DataContractJsonSerializer
있습니다.
또한 FromBody
인수 의 속성 을 사용하려고 하지만 작동하지 않습니다.