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

news/2024/7/8 6:44:02

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

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

解决问题思路是:

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

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

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

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

用心做好每一件事,结果会给你最大的惊喜!

http://www.niftyadmin.cn/n/4151907.html

相关文章

『TensorFlow』DCGAN生成动漫人物头像_下

『TensorFlow』以GAN为例的神经网络类范式 『cs231n』通过代码理解gan网络&tensorflow共享变量机制_上 『TensorFlow』通过代码理解gan网络_中 一、计算图效果以及实际代码实现 计算图效果 实际模型实现 相关介绍移步我的github项目。 二、生成器与判别器设计 生成器 相关参…

docker mysql 版本_把MySQL放进docker总共分几步

看完帮忙关注一下公众号 谢谢咯。把MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。1、 安装docker操作系统我使用的Centos7 x64系统,而Docker 目前看仅CentOS 7 及以上版本。本次采用Docker 仓库进…

大数据统计分析平台之二、ElasticSearch 6.2.1的安装与使用

# 下载文件cd /usr/local/software wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.1.zip yum install unzip -yunzip elasticsearch-6.2.1.zipcd elasticsearch-6.2.1/ #添加用户adduser elasticsearch#给用户赋值echo elasticsearch | passw…

mysql找出两个结果集不同数据_【每周一议】干货讨论 如何合并两个查询的结果集的数据...

ORACLE 9i 调试通过。create table TEMP1(RDATA DATE,RUSER VARCHAR2(10));create table TEMP2(RDATA DATE,RUSER VARCHAR2(10));insert into TEMP1 (RDATA, RUSER)values (to_date(05-11-2012, dd-mm-yyyy), NEW);insert into TEMP1 (RDATA, RUSER)values (to_date(02-11-2012…

Ajax 基础笔记

Ajax内容: 同步交互与异步交互  同步交互:客户端向服务器端发送请求,服务器端向客户端进行响应,这个过程中客户端不能做其他事情  异步交互:客户端向服务器端发送请求,服务器端向客户端进行响应&#x…

python turtle库输出文字_Python 海龟 turtle 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计...

一、输入/输出文字 在 1. 输出文字 输出文字可以使用 write() 方法来实现,语法如下: def write(self, arg, move=False, align="left", font=("Arial", 8, "normal")) 参数说明: arg:必选参数,用于指定要输出的文字内容,该内容会输出到当前…

python3程序下载_从Python中下载文件3

如果你想获取一个网页的内容到一个变量,只是读取urllib.request.urlopen的响应:import urllib.request...url http://example.com/response urllib.request.urlopen(url)data response.read() # a bytes objecttext data.decode(utf-8) # a str; thi…

linux的shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

Shell脚本介绍 shell是一种脚本语言可以使用逻辑判断、循环等语法可以自定义函数shell是系统命令的集合shell脚本可以实现自动化运维,能大大增加我们的运维效率Shell脚本结构和执行 开头需要加#!/bin/bash以#开头的行作为解释说明脚本的名字以.sh结尾,用…