当前位置: 首页 > 编程语言 > C#

JQueryajax调用MVC操作总是在没有错误的情况下返回错误Share

时间:2023-04-11 02:43:03 C#

JQueryajax调用MVC操作在没有错误的情况下总是返回错误这是一个MVC3应用程序。我有以下javascript调用我的操作:functioneditDescription(docId,fileName,fileDescription){$.ajax({type:"POST",url:"/OrderDetail/LoadModelData",contentType:"application/json;charset=utf-8",data:"{'id':'"+docId+"','filename':'"+fileName+"','description':'"+fileDescription+"'}",dataType:"json",成功:function(result){alert("ok:"+result.d);},error:function(result){alert('Ohno:'+result.responseText);}});继承我的操作:[HttpPost]publicstringLoadModelData(stringid,stringfilename,stringdescription){returnfilename;我运行代码,用参数调用动作,没有什么是空的,但每次调用错误函数。所以每次都会出现带有“Ohno”的警告框,但操作返回的字符串是正确的。如果文件名为test.pdf,则错误警告框会显示“OhNo:test.pdf”。我查看了Firebug,没有错误。尽管没有错误,为什么不调用成功函数?您期望(返回)您的操作方法中的字符串值。为什么需要指定数据类型为json?删除它,看看会发生什么。响应中没有d属性!所以只需在警报中使用结果即可。$.ajax({type:"POST",url:"/OrderDetail/LoadModelData",contentType:"application/json;charset=utf-8",data:JSON.stringify({id:docId,文件名:文件名,描述:fileDescription}),success:function(result){alert("ok:"+result);},error:function(result){alert('Ohno:'+result.responseText);}});datatype属性告诉服务器客户端希望返回什么样的内容作为结果。编辑:正如Darin提到的,使用JSON.stringify方法构建JSON请求。更新此答案以包括未来访问者的正确方式。永远不要使用字符串操作来构建JSON:data:"{'id':'"+docId+"','filename':'"+fileName+"','description':'"+fileDescription+"'}",thisAbsolutely可怕的和错误的。您没有编写任何代码。只要在描述中引用一句,一切都会崩溃。像这样处理JSON时始终使用JSON解析器:$.ajax({type:"POST",url:"/OrderDetail/LoadModelData",contentType:"application/json;charset=utf-8",data:JSON.stringify({id:docId,filename:fileName,description:fileDescription}),success:function(result){alert("ok:"+result.filename);},error:function(result){alert('哦不:'+result.responseText);}});JSON.stringify方法原生内置于现代浏览器中。如果您需要支持旧版浏览器,您可以包含json2.js脚本另一个错误是您的控制器操作签名。在ASP.NETMVC控制器中,操作必须返回ActionResults,而不是字符串:以上是C#学习教程:JQueryajax调用MVC操作,在没有错误的情况下总是返回错误的全部内容。如果对大家有用,需要了解更多C#学习教程,希望大家多加关注——[HttpPost]publicActionResultLoadModelData(stringid,stringfilename,stringdescription){returnJson(new{filename=filename});}本文收集自网络,不代表任何内容,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: