1

我有一个简单的 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)

在哪里寻找解决这个问题?

4

1 回答 1

0

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

services.AddMvc(options => options.ModelMetadataDetailsProviders.Add(new Microsoft.AspNetCore.Mvc.ModelBinding.SuppressChildValidationMetadataProvider(typeof(MyClass))))
于 2019-12-12T07:33:09.687 回答