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