Estoy tratando de publicar múltiples parámetros en un controlador WebAPI. Un parámetro es de la URL y el otro del cuerpo. Aquí está la url:
/offers/40D5E19D-0CD5-4FBD-92F8-43FDBB475333/prices/
Aquí está mi código de controlador:
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);
}
El contenido del cuerpo está en 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
}]
}
}]
}
}]
}
}
¿Alguna idea de por qué el enlace predeterminado no puede vincularse al offerPriceParameters
argumento de mi controlador? Siempre se establece en nulo. Pero puedo recuperar los datos del cuerpo usando DataContractJsonSerializer
.
También trato de usar el FromBody
atributo del argumento pero tampoco funciona.