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

话不多说,先说明显现象

1. startup关键代码

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

 

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

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

 

 对应的实体类型为:

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

 

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

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

 

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

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

 

 

修复方式1:

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

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

 

 然后就能绑定成功了

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

 

 

修复方式2:

用NewtonsoftJson来序列化

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

 

 

 

总结:

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

 

相关文章:

  • 2021-05-06
  • 2021-05-16
  • 2021-12-21
  • 2021-05-18
  • 2021-09-08
  • 2021-10-15
猜你喜欢
  • 2021-05-26
  • 2021-10-31
  • 2022-12-23
  • 2021-10-23
  • 2021-09-15
  • 2021-08-08
相关资源
相似解决方案