2016-11-03 3 views
2

Я работаю в Chart.js с VisualStudio, C# и NewtonSoft.Json. Я написал класс, возвращающий действительный JSON-String. Только что проверил его здесь: https://jsonformatter.curiousconcept.com/ JSON-строка содержит все данные для Chart.js и выглядит следующим образом:C# Chart.Js и JSON с NewtonSoft

{ 
    "labels": [ 
     "O", 
     "N", 
     "U", 
     "G" 
    ], 
    "datasets": [ 
     { 
      "label": 2016, 
      "fillColor": "rgba(220, 220, 220, 0.2)", 
      "strokeColor": "rgba(220, 220, 220, 1)", 
      "pointColor": "rgba(220, 220, 220, 1", 
      "pointStrokeColor": "#fff", 
      "pointHighlightFill": "#fff", 
      "pointHighlightStroke": "rgba(220, 220, 220, 1", 
      "data": [ 
       2, 
       0, 
       14, 
       16 
      ] 
     } 
    ] 
} 

Теперь я написал небольшую Ajax-Script в моем cshtml. Похоже, это:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      url: 'JSON/kvp_stats.cshtml', 
      dataType: 'json', 
      method: 'POST', 
      success: function (data) { 
       var d = data; 
       alert(d); 
       var ctx = $('#myChart'); 
       var myLineChart = new Chart(ctx, { 
        type: 'line', 
        data: d 
       }) 
      }, 
      error: function() { 
       alert('Etwas klappt nicht!'); 
      } 
     }); 
    }); 
</script> 

В kvp_stats.cshtml я сделал следующее: просто написал: @mm_json.getJSON_Kvp(2016) получить возвращаемый JSON-строку.

К сожалению, jquery-ajax, похоже, не принимает данные в виде JSON-данных, поскольку он работает с функцией ошибки. Когда я изменяю dataType в html, он преуспевает.

Я думаю, что мне нужно «кодировать» данные, чтобы dataType правильно отвечал на JSON-String, но как и где?

Благодарим за помощь.

+1

Вы должны будете использовать контроллер для отправьте данные JSON, а не .cshtml. Таким образом, ваш URL должен быть чем-то вроде «/ YourControllerName/GetStats», который отправит соответствующий ответ JSON. –

ответ

0

Хорошо, я удивлен собой. Только что узнал, как решить проблему.

Выход строки в JSON-файл в моем случае kvp_stats.cshtml должен быть оказаны следующим образом:

@Html.Raw(mm_json.getJSON_Kvp(2016)) вместо только @mm.json.getJSON_Kvp (2016)

Смежные вопросы