我读过很多关于 Ajax 返回未定义数据的文章,但是当我尝试使用图表 js 构建一个简单的图形时,我发现了一个大问题。 我构建的用于返回数据的对象会同时返回未定义和有效的数据。 让我解释一下。
对象:
public class ChartData
{
public string label { get; set; }
public decimal zeroValue { get; set; }
public decimal zeroValueRead { get; set; }
public string spanValue { get; set; }
public string spanValueRead { get; set; }
}
网络服务人口:
List<ChartData> iData = new List<ChartData>();
List<MaintenanceCalibration> cals = new MaintenanceCalibration().GetCalibrationsByAnalyzer(Convert.ToInt32(analyzerId))
.Where(m => m.AnalyzerMeasureId == Convert.ToInt32(analyzerMeasureId)).ToList();
foreach (MaintenanceCalibration item in cals)
{
iData.Add(new ChartData
{
label = item.Date.ToShortDateString(),
zeroValue = item.ZeroValue,
zeroValueRead = item.ZeroValueRead,
spanValue = item.SpanValue.ToString().Replace(",", "."),
spanValueRead = item.SpanValueRead.ToString().Replace(",", ".")
});
}
return iData;
ajax调用:
$(function () {
var jsonData = JSON.stringify({
analyzerId: 3,
analyzerMeasureId: 7
});
$.ajax({
type: "POST",
url: "Maintenance/controlchart.asmx/getLineChartData",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess_
});
function OnSuccess_(response) {
var aData = response.d;
var str = "";
$.each(aData, function (inx, val) {
str += val.label + ' - ' + val.zeroValues + ' : ' +
val.zeroValuesRead + ' | ' +
val.spanValue + ' : ' + val.spanValueRead + ' ||| ';
});
$('#data').text(chk);
}
})
返回数据:
23/08/2016 - undefined : undefined | 100.0000 : 99.6000
22/09/2016 - undefined : undefined | 100.0000 : 99.3000
21/10/2016 - undefined : undefined | 100.0000 : 99.3000
21/11/2016 - undefined : undefined | 100.0000 : 99.5000
19/12/2016 - undefined : undefined | 100.0000 : 99.6000
24/01/2017 - undefined : undefined | 100.0000 : 99.6000
但是如果我调用服务器端我获得的对象的数量:
23/08/2016 - 0,1000 : 0,0000 | 99,6000 : 100,0000
22/09/2016 - 0,1500 : 0,0000 | 99,3000 : 100,0000
21/10/2016 - -0,1000 : 0,0000 | 99,3000 : 100,0000
21/11/2016 - 0,1000 : 0,0000 | 99,5000 : 100,0000
19/12/2016 - -0,0500 : 0,0000 | 99,6000 : 100,0000
24/01/2017 - 0,0000 : 0,0000 | 99,6000 : 100,0000
此输出为意大利语,因此逗号为数字。
有人可以帮助我解决代码的这种奇怪行为吗?
最佳答案
鉴于您从后端填充服务的方式,请尝试以这种方式在 js 中访问
str += val.label + ' - ' + val.zeroValue + ' : ' +
val.zeroValueRead + ' | ' +
val.spanValue + ' : ' + val.spanValueRead + ' ||| ';
关于javascript - Ajax 从对象中返回未定义和有效的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47443158/