私はVisualStudio、C#とNewtonSoft.JsonでChart.jsに取り組んでいます。 有効なJSON文字列を返すクラスを作成しました。ただ、ここでそれを確認: https://jsonformatter.curiousconcept.com/ をJSON-stringがChart.jsのための全体のデータが含まれており、次のようになります。今C#Chart.JsとJSON with 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
]
}
]
}
私はCSHTMLに小さなAjaxのスクリプトを書きました。私は次のようでしたkvp_stats.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>
:ちょうど書きました: @mm_json.getJSON_Kvp(2016)
を返されたJSON-文字列を取得するには、次のようになります。
残念ながら、jquery-ajaxはデータをJSONデータとして受け付けていないようですが、エラー関数に実行されるためです。 dataTypeをhtmlに変更すると、成功するようになります。
データ型がJSON-Stringに正しく応答するようにデータを「エンコード」する必要があると思いますが、どうやってどこですか?
ありがとうございました。
あなたがするようにコントローラを使用する必要があります.cshtmlではなくJSONデータを送り返してください。したがって、あなたのURLは "/ YourControllerName/GetStats"のようなものでなければなりません。これは適切なJSONレスポンスを返送します。 –