为什么我的对象没有填满 aspdotnet json 转换器



我有一个简单的http服务器。我通过 POST 发送一些 json 对象

首先,我使用 json 转换器来解析 json 并填充不可序列化的对象

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
list<SomeClass> list = JArray.Load(reader).Cast<JObject>().Select(o => new SomeClass((string)o.GetValue("val1"), (string)o.GetValue("val2"))).ToList();
return list;
}

列表加载正常,但在下一步中,包含该列表的类 MyClass 的字段为空

[HttpPost]
public IActionResult PostData([FromBody]MyClass myClass)

在哪里寻找解决此问题?

解决方案是查看抛出的异常,我可以找到原因 - 验证对象。溶液:

services.AddMvc(options => options.ModelMetadataDetailsProviders.Add(new Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider(typeof(MyClass))))

最新更新