ArgumentException: 已添加了具有相同键的项。

简介: 此问题出现在asp.net mvc 5 中,前端向后端请求数据,方法的参数是模型,比如 Add(Student m), 结果浏览器显示的状态是500并返回错误提示ArgumentException,如标题,堆栈信息就不贴了,网上可以搜到很多这个问题的解决办法。

此问题出现在asp.net mvc 5 中,前端向后端请求数据,方法的参数是模型,比如 Add(Student m), 结果浏览器显示的状态是500并返回错误提示ArgumentException,如标题,堆栈信息就不贴了,网上可以搜到很多这个问题的解决办法。

这个问题出现的原因中,除了前端传的参数中含有两个以上大小写不同的参数名,还有就是模型定义问题,可能有两个大小写不同的属性。以上均是因为大小写不同的参数名重复添加到字典里面,才会报这个错。

解决问题思路是:

第一、看完堆栈信息,不是自己代码出的错,直接调试源码,此法万能,没有调试不了的bug,就怕断点断在哪里都不知道,且对小白极不友好,仅适合高端玩家,不推荐。

第二、用尝试,模仿的方式去试探是定位是哪一块的原因。比如新增一个方法名不同,参数一样的方法尝试请求(用这个方法解决了前端元素绑定点击事件报 search 方法不存在的问题 onclick=“search();”,没深究,search可能是关键字什么的,改个名字就好了)。还有用同样方法名,改变参数再尝试请求,这时会发现不用那个模型作为参数就不报错了,那么问题就出在模型上了,这时候先把问题记下来,先改用常规的参数接收写法,多写几个参数,保证不在报错,之后再研究是模型哪里的问题。这类办法需要有相当的经验,才能想到,往哪方面尝试比较容易定位问题,看个人功底。

第三、回滚。问题总是突然出现的,很多同学应该都经历过,之前明明还好好地,怎么上个厕所回来就这样了。别急先保存一份现在的代码,然后一点点撤销最后面改的代码,每撤销一次就运行测试一次,撤销到上一次提交代码之前,你总能发现是改了哪一行引起的问题,找到之后,再看看什么 是写法不对还是什么,或者换个写法,换个姿势什么的就好了。此类办法也是万能的,不管有没有相关经验,都可以手动回滚到以前正确的时候,以此来定位然后解决问题。

总结:以上思路适合各种语言各种环境出现问题时可以参考的思路,使得在没有相关知识经验的时候也能解决问题。其实不是我们解决不了问题,是很多同学碰到不熟悉的问题时,通常都会一脸懵逼不知所措无从下手,还有习惯了把问题丢给别人的就想也不想直接问人家,这个问题怎么办,代码也不贴,问题虽然解决了但是却得不到提高,打了怪也不涨经验。

用心做好每一件事,结果会给你最大的惊喜!
目录
相关文章
|
6月前
|
数据安全/隐私保护
【VS2017】怎么调整Tab键的顺序和回车直接登录
【VS2017】怎么调整Tab键的顺序和回车直接登录
38 0
|
6月前
33.求1*2+2*3+3*4+……前n项的和
33.求1*2+2*3+3*4+……前n项的和
56 3
|
6月前
32.求1+(1+2)+(1+2+3)+(1+2+3+4)+……的前n项的和
32.求1+(1+2)+(1+2+3)+(1+2+3+4)+……的前n项的和
143 3
|
小程序 JavaScript
小程序循环列表删除当前选中列表的方法
小程序循环列表删除当前选中列表的方法
111 0
|
存储 消息中间件 缓存
关于字典项(下拉列表)在前后端的实践思考
最近接触了一点公司的后端代码,刚好自己有非常多的疑问,带着这些疑问,我就来看看公司后端的代码是如何实现的。由于工作中表单的录入工作相对频繁,而且有非常多的下拉选项,所以就先来看看字典项目的获取。
471 0
|
C++
新建项无资源字典类型
新建项无资源字典类型
122 0
新建项无资源字典类型
|
程序员 Windows
Win键+R键快捷命令汇总
对Windows操作比较熟的人都知道,Win键 + R键可以快速唤起Run窗口,输入命令就可以方便快捷地打开很多打开应用,可以使用到很多系统自带的工具,其中程序员用到的最多的肯定就是cmd了,可以打开DOS窗口。
Win键+R键快捷命令汇总
|
JavaScript 前端开发
按一下删除键删除整个单词
按一下删除键删除整个单词
按一下删除键删除整个单词
|
存储
查找二叉树中最小和最大的键(三)
日常生活中,很多事物都可以用树来描述,例如书的目录、工作单位的组织架构等等。树是计算机中非常重要的一种数据结构,树存储方式可以提高数据的存储、读取效率。 正文 比如二叉树中用来记录某个公司员工薪资和员工姓名数据,或者某班级学生们的排名和姓名数据。如何快速找出排名最高和最低的同学数据?
213 0
查找二叉树中最小和最大的键(三)
|
前端开发 JavaScript