Я работаю в 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, но как и где?
Благодарим за помощь.
Вы должны будете использовать контроллер для отправьте данные JSON, а не .cshtml. Таким образом, ваш URL должен быть чем-то вроде «/ YourControllerName/GetStats», который отправит соответствующий ответ JSON. –