【2020.04.02】asp.net core 3.1 复杂类型模型绑定失败

最近把项目从2.1升级到3.1,遇到各种奇葩问题

话不多说,先说明显现象

1. startup关键代码

【2020.04.02】asp.net core 3.1 复杂类型模型绑定失败_第1张图片

 

 然后项目中有一个controller-action如下

 

 对应的实体类型为:

【2020.04.02】asp.net core 3.1 复杂类型模型绑定失败_第2张图片

 

 然后向该接口,发起对应的post请求,如下

【2020.04.02】asp.net core 3.1 复杂类型模型绑定失败_第3张图片

 

 惊奇的发现居然模型绑定后为null

 

 

修复方式1:

将post的“int”类型的值,用双引号包起来

【2020.04.02】asp.net core 3.1 复杂类型模型绑定失败_第4张图片

 

 然后就能绑定成功了

 

 

修复方式2:

用NewtonsoftJson来序列化

【2020.04.02】asp.net core 3.1 复杂类型模型绑定失败_第5张图片

 

 

 

总结:

这个现象的本质问题应该是,新版本core下,用的序列化器System.Text.Json, 它里面应该在序列化方面可能(我没看源码,仅仅是通过现象猜测)显得更“严格”,不过按照以往的习惯,针对于上述我描述的现象,我们直观的期望是直接绑定成功的。

 

你可能感兴趣的:(【2020.04.02】asp.net core 3.1 复杂类型模型绑定失败)