Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NET MVC3项目,ajax回调与;contentType:';text/json;字符集=utf-8'&引用;但是";contentType:';应用程序/json;字符集=utf-8'&引用;_C#_Json_Header_Content Type - Fatal编程技术网

C# NET MVC3项目,ajax回调与;contentType:';text/json;字符集=utf-8'&引用;但是";contentType:';应用程序/json;字符集=utf-8'&引用;

C# NET MVC3项目,ajax回调与;contentType:';text/json;字符集=utf-8'&引用;但是";contentType:';应用程序/json;字符集=utf-8'&引用;,c#,json,header,content-type,C#,Json,Header,Content Type,最近,我将公司的mvc2站点转换为mvc3。大多数功能运行良好,但ajax调用失败。js代码位于aspx页面上(它是MVC2) 原始代码: $.ajax({ type: 'POST', url: '<%= Url.Action("MethodName", "Home") %>', data: JSON.stringify(results), //results is some data with json format traditio

最近,我将公司的mvc2站点转换为mvc3。大多数功能运行良好,但ajax调用失败。js代码位于aspx页面上(它是MVC2) 原始代码:

$.ajax({ type: 'POST',
        url: '<%= Url.Action("MethodName", "Home") %>',
        data: JSON.stringify(results), //results is some data with json format
        traditional: true,
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: otherJSFunction
    })
$.ajax({type:'POST',
url:“”,
data:JSON.stringify(results),//results是一些JSON格式的数据
传统的:是的,
数据类型:“json”,
contentType:'application/json;charset=utf-8',
成功:otherJSFunction
})
当我运行代码时,我从C#得到一个错误,如下所示。 System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject(XmlReaderDelegator xmlReader,布尔verifyObjectName)

我试图将属性[DataContract]添加到模型类中,但没有任何用处。当我试图将原始代码的“应用程序”更改为“文本”时,它起作用了。代码如下:

$.ajax({ type: 'POST',
        url: '<%= Url.Action("MethodName", "Home") %>',
        data: JSON.stringify(results), ////results is some data with json format
        traditional: true,
        dataType: 'json',
        contentType: 'text/json; charset=utf-8',
        success: otherJSFunction
    })
$.ajax({type:'POST',
url:“”,
数据:JSON.stringify(results),///results是一些JSON格式的数据
传统的:是的,
数据类型:“json”,
contentType:'text/json;charset=utf-8',
成功:otherJSFunction
})
我从stackoverflow和文档中查看了很多票据,人们总是说“application/json”是正确的方法。但正确的方法对我的案子不起作用。有人能帮我解释为什么会发生这种事吗


谢谢。

嗯,10人先来点。我认为您不需要“traditional:true”标志和“JSON.stringify”或contentType。在我的项目中从来都不需要它们中的任何一个,你在使用什么jquery-应该在3点左右。x@RichardHousham,jQuery版本为1.5。该项目是由其他人创建的,团队负责人不希望我对当前的工作代码做太多更改。我必须保留ajax设置。嗯,现在很多东西都依赖于jquery 1.8版,包括作为MVC3框架一部分的不引人注目的验证。我还想说的是,通过使用这样一个有很多漏洞的旧版本,升级将是一个好主意。尽管如此,我还是会坚持以前的建议,看看这是否有帮助。。例外是什么?谢谢@RichardHousham,我已经尝试将jquery升级到1.8。问题仍然存在。我同意你的观点,这个问题是因为旧版本的问题。我只是想知道为什么会这样。我检查了开发人员工具,请求数据在“application/json”和“text/json”之间完全相同,那么控制器返回的实际异常是什么?检查提交的json是否也有效。