我试图在WebAPI控制器上发布多个参数。一个参数来自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。但是我能够使用the从身体恢复数据DataContractJsonSerializer。我也尝试使用FromBody参数的属性,但它也不起作用。
3 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
如果正在使用属性路由,则可以使用[FromUri]和[FromBody]属性。
例:
[HttpPost()]
[Route("api/products/{id:int}")]
public HttpResponseMessage AddProduct([FromUri()] int id, [FromBody()] Product product)
{
// Add product
}
- 3 回答
- 0 关注
- 1225 浏览
添加回答
举报
0/150
提交
取消