.Net Core API的Post动作使用[FromBody] dynamic inputObj报错:System.Text.Json.JsonElement' does not contain a definition for 'xxx'
问题描述,就是简单的新建个.net core api的项目,在原本的WeatherForecast控制器上新建了一个post的方法来接收参数。
[HttpPost]
public Person PostPerson([FromBody] dynamic inputObj)
{
var t = inputObj.ToObject<Person>();
return t;
}
就这样直接用inputObj.属性或者这样转换就会报:System.Text.Json.JsonElement' does not contain a definition for 'xxx'的错误。
解决办法:
1.在nuget包管理器中安装Newtonsoft.Json
2.在nuget包管理器中安装Microsoft.AspNetCore.Mvc.NewtonsoftJson。
3.在startup中注册。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddNewtonsoftJson();
}