2017-11-22 7 views
0

Ajaxが未定義のデータを返すときにたくさんの投稿を読んだことがありますが、チャートjsを使って簡単なグラフィックを作成しようとしたときに大きな問題が見つかりました。 データを返すためにビルドしたオブジェクトは、未定義で有効なデータを一緒に返します。 私に説明しましょう。Ajaxがオブジェクトから未定義の有効なデータを返す

オブジェクト:

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; } 
    } 

Webサービスの人口:

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 

この出力は、数字でコンマので、イタリア語の言語です。

誰かが、コードのこの奇妙な振る舞いを助けることができますか?

+0

を試みる 'val.zeroValues'と 'val.zeroValuesRead'に問題がある可能性があります。 – edkeveked

+0

val.zeroValues!= val.zeroValueとzeroValueRead!= zeroValuesRead –

+0

私は完全に盲目だと思います!私はこのミスのために半日を失う。 @edkevekedありがとうございました。 – Rotondof

答えて

1

あなたがバックエンドからあなたのサービスを移入する方法を考えると、あなたのJSでのアクセスにこのよう

str += val.label + ' - ' + val.zeroValue + ' : ' + 
       val.zeroValueRead + ' | ' + 
       val.spanValue + ' : ' + val.spanValueRead + ' ||| '; 
関連する問題