javascript - Ajax 从对象中返回未定义和有效的数据

标签 javascript c# jquery ajax

我读过很多关于 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/

相关文章:

javascript - 剑道用户界面 : remote DataSource with local operations

c# - 如何将十六进制字符串转换为字节数组?

javascript - 你能从 javascript 使用 ASMX 网络服务吗?

javascript - 如何将 jQuery UI 的拖放功能与文件集成?

jquery - 具有多个数据目标的 Bootstrap v3 Navbar-toggle 不切换类 "collapsed"

c# - RegisterClientScriptInclude : What does "type" parameter do?

javascript - 如何在javascript函数中接收ajax调用的POST数据

c# - Json 响应空值

C#; NullReferenceException 未处理;值被重置为 0

javascript - 无法更改 Bootstrap DateTimePicker 的格式