MVC JSON方法将无效的JSON返回给JQuery?

我遇到了Jquery解析我发回的JSON的问题……但是,这很奇怪,因为我使用的是MVC的JSON方法。

这是我的设置。 我有一个非常简单的function:

$.ajax({ url: URLd, dataType: 'json', data: { Year: $('#VehicleYear').val(), Value: request.term }, success: function (data, textStatus, jqXHR) { alert("Success!"); }, error: function(XMLHttpRequest, textStatus) { alert(textStatus + ": " + XMLHttpRequest.responseText); } }); 

它总是运行错误function,显示:

parsererror:[{“Value”:“Toyota”,“ID”:160}]

我无法弄清楚为什么它在世界上这样做… 它正在使用旧版本的JQuery – 我读到JQuery JSON解析器现在相当严格 – 但我无法弄清楚什么是错的用我的JSON。

即使它是错的,这也非常令人沮丧,因为我正在使用MVC的 Json函数来生成:

 public ActionResult GetVehicleModels(int Year, int MakeID, string Value = null) { var modlMatchs = (from VMYX in ent.VehicleMakeYearXREFs join VM in ent.VehicleModels on VMYX.VehicleModelID equals VM.VehicleModelID join VMa in ent.VehicleMakes on VM.VehicleMakeID equals VMa.VehicleMakeID where VMYX.ModelYear == Year && VMa.VehicleMakeID == MakeID && VM.VehicleModelName.StartsWith(Value) orderby VMa.VehicleMakeName select new { Value = VM.VehicleModelName, ID = VM.VehicleModelID }).Distinct().Take(10).ToList(); return this.Json(modlMatchs, "application/json", JsonRequestBehavior.AllowGet); } 

我必须错过一些明显的东西……仍然掌握着JQuery / MVC,但这些事情确实在减慢我的进度。

果然,JQuery结果如下(根据Chrome的开发人员工具栏)

 [{"Value":"Toyota","ID":160}] 

将jQuery AJAX调用中的dataType更改为“text json”。 我怀疑响应内容类型标头可能存在问题,或者其他导致jQuery不将dataType确认为json的问题。 使用“text json”将导致jQuery在将其转换为js对象之前将其作为纯文本接受。

 var parsed = jQuery.parseJSON('[{"Value":"Toyota","ID":160}]'); 

我刚刚尝试了上面的内容并且它解析得很好,但是请记住它已经将它作为数组中的单个记录返回(由于从C#返回IEnumerable)。