【发布时间】:2015-08-19 20:40:55
【问题描述】:
我正在做类似的事情:
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: '/Modal/getModalInfo',
data: '{"machine":"' + machine + '"}',
success: function (response) {
modalData = response;
fillModal();
}
});
如果我调试 C# 并检查发送回 JS 的响应,数据看起来完全正确。
Ajax 调用中的响应只是:
response = Object {}
并且完全是空的。我正在以完全相同的方式执行其他几个正确执行的 Ajax 调用。
编辑:
就 C# 向 Ajax 返回的内容而言:
try {
return Json(allInfo, JsonRequestBehavior.AllowGet);
}
catch (Exception ex) {
return new JsonResult();
}
“allinfo”看起来像:
AllTheInfo allInfo = new AllTheInfo();
class AllTheInfo {
List<DownTimes> dList;
internal List<DownTimes> DList {
get { return dList; }
set { dList = value; }
}
List<PartsMade> pList;
internal List<PartsMade> PList {
get { return pList; }
set { pList = value; }
}
PartsTotals pTotal;
internal PartsTotals PTotal {
get { return pTotal; }
set { pTotal = value; }
}
}
该类中引用的类是我制作的其他自定义类。
编辑:我还修改了我的 Ajax 调用以捕获错误,它似乎认为没有任何错误,再次,只是一个空的成功响应。
再次编辑:我现在尝试使用以下方法将我返回的对象转换为 C# 中的 Json 字符串:
string jsontext = "";
try {
jsontext = JsonConvert.SerializeObject(allInfo);
System.IO.File.WriteAllText(path, jsontext);
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
现在的问题是对 JsonConvert 的调用成功完成(没有捕获到错误)但是字符串等于“{}”
我不确定为什么这会被解释为成功。
【问题讨论】:
-
您在“网络”选项卡中看到了什么?
-
你能发布到 getModalInfo 操作代码吗?
-
该函数太大且与上下文无关,无法发布所有内容,但我将添加一些代码来说明 getModalInfo() 返回的内容。
-
默认 Json() 很糟糕,尤其是如果你有字典,你可以尝试使用 newsoft json
-
问题是这与我使用 Json() 将数据返回到其他 Ajax 调用的方式相同。
标签: javascript c# jquery asp.net ajax