c#Chart.Js和JSON与NewtonSoft

时间:2016-11-03 09:21:49

标签: c# json json.net chart.js

我在VisualStudio,c#和NewtonSoft.Json中使用Chart.js。 我写了一个返回有效JSON-String的类。刚看过这里: https://jsonformatter.curiousconcept.com/ JSON-String包含Chart.js的整个数据,如下所示:

{
    "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脚本。看起来像这样:

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

不幸的是,jquery-ajax似乎并不接受数据作为JSON数据,因为它会遇到错误功能。 当我将dataType更改为html时,它会成功。

我认为我必须&#34;编码&#34;数据类型是否正确响应JSON-String但是如何以及在何处?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,我自己很惊讶。 刚刚找到了解决问题的方法。

在我的情况下,kvp_stats.cshtml的json文件中的字符串输出必须按如下方式呈现:

@Html.Raw(mm_json.getJSON_Kvp(2016))而非@mm.json.getJSON_Kvp(2016)