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

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

解决问题思路是:

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

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

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

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

ArgumentException: 已添加了具有相同键的项。的更多相关文章

  1. System.ArgumentException: 已添加了具有相同键的项。(An item with the same key has already been added) 在 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) 在 System.Web.Mvc.Js

    最近将一个项目从ASP.NET MVC 3升级至刚刚发布的ASP.NET MVC 5.1,升级后发现一个ajax请求出现了500错误,日志中记录的详细异常信息如下: System.ArgumentEx ...

  2. vs2015 安装之后安装MSSM 2016 导致 vs启动报错 System.ArgumentException 已添加了具有相同键的项,ActivityLog.xml

    如题,先是装了vs2015,开发什么的都没有问题,后来安装了SqlServer2016 MSSM,出大问题了,vs2015打开就报错,具体错误如上,还想还有个ActivityLog.xml 这个文件的 ...

  3. MVC 5.1的遭遇:“已添加了具有相同键的项”

    ASP.NET MVC 3升级至MVC 5.1的遭遇:“已添加了具有相同键的项”   最近将一个项目从ASP.NET MVC 3升级至刚刚发布的ASP.NET MVC 5.1,升级后发现一个ajax请 ...

  4. ASP.NET MVC 3升级至MVC 5.1的遭遇:“已添加了具有相同键的项”

    最近将一个项目从ASP.NET MVC 3升级至刚刚发布的ASP.NET MVC 5.1,升级后发现一个ajax请求出现了500错误,日志中记录的详细异常信息如下: System.ArgumentEx ...

  5. MVC :“已添加了具有相同键的项”

    最近将一个项目从ASP.NET MVC 3升级至刚刚发布的ASP.NET MVC 5.1,升级后发现一个ajax请求出现了500错误,日志中记录的详细异常信息如下: System.ArgumentEx ...

  6. mvc已添加了具有相同键的项

    异常详细信息: System.ArgumentException: 已添加了具有相同键的项. 场景重现:在地址栏输入  http://localhost:51709/Home/Index?user[0 ...

  7. 多线程环境下非安全Dictionary引起的“已添加了具有相同键的项”问题

    问题: 代码是在多线程环境下,做了简单的Key是否存的判断, 测试代码如下: public class Program { static Dictionary<string, Logger> ...

  8. MVC 表单提交提示:已添加了具有相同键的项。

    MVC:页面提交的时候报如下错误: 解决方案: 这个Model 里面定义了重复的字段so~~~

  9. VS窗体选择BackGroupImage属性报错:已添加具有相同键的项

    高墙我今天第一次遇见这个问题.既然说是"已添加具有相同键的项."那我自然地认为会不会是文件夹哪里命名了两个相同的文件名.然后在这个Exception上越走越远. 好了不说废话.出现 ...

随机推荐

  1. dfs小练 【dfs】

    1.前n个自然数的所有排列: #include <iostream> #include <cstdio> #include <cstring> using name ...

  2. manacher最长回文序列c++

    算法真心读不懂 #include <iostream>#include<string>#include<cstring> using namespace std;c ...

  3. tomcat启动时端口占用的问题怎么解决

    PS:web项目在启动的时候,一般会报Address already in use: bind,常规的处理思路为:删除任务管理器中的javaw.exe进程即可:当删除仍然解决不了时,一般处理思路如下, ...

  4. Mask_RCNN Test

  5. SpringMVC工作原理2(代码详解)

    图1.流程图 1.当一个请求(request)过来,进入DispatcherServlet中,里面有个方法叫 doDispatch()方法 里面包含了核心流程 源码如下: 4.然后往下看getHand ...

  6. 『SpringMVC』<context:include-filter>&<context:exclude-filter>爬坑

    原文地址:https://segmentfault.com/a/1190000012972619 大家好,我是猪弟,猪在我心中从来不是蠢的代名词,而是懒的代名词,本次准备记录一个在开发测试过程中遇到的 ...

  7. pthread_exit pthread_join

    int pthread_join(pthread_t thread, void **retval); int pthread_detach(pthread_t thread); void pthrea ...

  8. KbmMW 认证管理器说明(转载)

    这是kbmmw 作者关于认证管理器的说明,我懒得翻译了,自己看吧. There are 5 parts of setting up an authorization manager: A) Defin ...

  9. 使用Jsoup获取网页内容超时设置

    使用Jsoup获取网页内容超时设置 最近使用Jsoup来抓取网页,并对网页进行解析,发现很好用.在抓取过程中遇到一个问题,有些页面总是报Timeout异常,开始想是不是被抓取网站对IP进行了限制,后来 ...

  10. 2018.08.30 bzoj4720: [Noip2016]换教室(期望dp)

    传送门 一道无脑的期望dp. 用f[i][j][0/1]表示前i堂课提出了j次申请且第i堂课没有(有)提出申请. 这样就可以状态转移了. 然而这题状态转移方程有点长... (主要是情况多... 代码: ...