Ich versuche, mehrere Parameter auf einem WebAPI-Controller zu veröffentlichen. Ein Parameter stammt aus der URL und der andere aus dem Text. Hier ist die URL:
/offers/40D5E19D-0CD5-4FBD-92F8-43FDBB475333/prices/
Hier ist mein Controller-Code:
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);
}
Der Inhalt des Körpers ist in 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
}]
}
}]
}
}]
}
}
Irgendeine Idee, warum die Standardbindung nicht an das offerPriceParameters
Argument meines Controllers binden kann? Es wird immer auf null gesetzt. Aber ich bin in der Lage, die Daten aus dem Körper mit dem wiederherzustellen DataContractJsonSerializer
.
Ich versuche auch, das FromBody
Attribut des Arguments zu verwenden, aber es funktioniert auch nicht.