控制器操作未收到请求正文中的内容

我有一个Controller具有以下操作的 WebApi2 :


[Route("{id:int}/Change")]

public async Task<IHttpActionResult> Change(int id, [FromBody] string description)

{

    var entity = await entityService.ChangeAsync(id, description);

    return Ok(entity);

}

我提出请求如下:


var content = new FormUrlEncodedContent(new List<KeyValuePair<string, string>>

{

    new KeyValuePair<string, string>("description", descripton)

});


response = client.PostAsync(string.Format("Api/Entity/{0}/Change", id), content).Result;

但是,该description值未到达操作,并且始终为空。


我在这里做错了什么?


FFIVE
浏览 157回答 1
1回答

小唯快跑啊

您的 HttpClient 需要 Json,而不是表单内容。要更改它,您需要将Content-Typeheader更改为application/x-www-form-urlencoded.&nbsp;有了这个,api 应该能够正确协商内容类型并解析数据。
打开App,查看更多内容
随时随地看视频慕课网APP