2016-11-03 2 views
2

Ich arbeite in Chart.js mit VisualStudio, C# und NewtonSoft.Json. Ich habe eine Klasse geschrieben, die einen gültigen JSON-String zurückgibt. So überprüft es hier: https://jsonformatter.curiousconcept.com/ Die JSON-String enthält die gesamten Daten für Chart.js und sieht wie folgt aus:C# Chart.Js und JSON mit 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 
      ] 
     } 
    ] 
} 

Jetzt habe ich eine kleine Ajax-Skript in meinem cshtml geschrieben. Sieht wie folgt aus:

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

Im kvp_stats.cshtml ich folgende tat gerade geschrieben: @mm_json.getJSON_Kvp(2016) das zurückgegebene JSON-String zu erhalten.

Leider scheint der jquery-ajax die Daten nicht als JSON-Daten zu akzeptieren, da er in die error-function läuft. Wenn ich den dataType in HTML ändern, läuft es erfolgreich.

Ich denke, dass ich die Daten "kodieren" muss, damit der dataType richtig auf den JSON-String reagiert, aber wie und wo?

Danke für Ihre Hilfe.

+1

Sie werden an einen Controller verwenden, benötigen Senden Sie Ihre JSON-Daten zurück, kein .cshtml. Also sollte Ihre URL etwas wie "/ YourControllerName/GetStats" sein, die die entsprechende JSON-Antwort zurücksendet. –

Antwort

0

Ok, ich bin selbst überrascht. Habe gerade herausgefunden, wie man das Problem löst.

Die Ausgabe der Zeichenfolge in der json-Datei in meinem Fall die kvp_stats.cshtml gemacht werden muss, wie folgt:

@Html.Raw(mm_json.getJSON_Kvp(2016)) statt nur @mm.json.getJSON_Kvp (2016)

Verwandte Themen