这个问题的发生场景是当前端向后端提交数据的时候。
比如前端的json数据格式是:
"id": "1",
"name": "chichi"
后端实体Person类中定义了一个id属性,但是后端实体类又是继承自EntityBase。
class Person : EntityBase
{
public string id {get; set;}
}
但是EntityBase类中本身定义了一个Id属性:
class EntityBase
{
public string Id {get; set;}
}
从而导致Person实体中实际上有一个id属性和一个Id属性。
又因为从前端向后端提交表单数据并与后端实体类进行绑定的过程中,其不区分字段大小写,故会认为实体类中有两个同名key,所以也就报错System.ArgumentException: 已添加了具有相同键的项
。
对于上述问题的解决方案:将Person 类中的id属性也命名成和父类一样即可,即命名为Id 。
参考:https://blog.csdn.net/weixin_44541467/article/details/95981830