ASP.NET WebApi 中使用非Get
请求,传递参数需要用对象包裹起来,比如:
[HttpPost]
public async Task<IActionResult> PostValue([FromBody]PostDTO data)
{
return Ok(await _valuesService.Post(data.Name, data.Value););
}
但如果操作比较多的话,我们需要对每个Api
创建一个DTO
对象,如果传递的参数很少,这样创建对象就有点太浪费,并且ApplicationService
接口参数都是拍扁的,很少会传递DTO
对象作为参数。
怎么解决这个问题呢?很简单,使用JObject
就可以了,示例:
using Newtonsoft.Json.Linq;
[HttpPost]
public async Task<IActionResult> PostValue([FromBody]JObject data)
{
return Ok(await _valuesService.Post(data["name"].ToObject<string>(), data["value"].ToObject<string>()););
}