Javascript 图表js与asp.net的连接

Javascript 图表js与asp.net的连接,javascript,c#,asp.net,charts,highcharts,Javascript,C#,Asp.net,Charts,Highcharts,我正在尝试在ASP.NET中使用图表js制作折线图,但这不起作用,在我尝试使用饼图之前,效果很好,但折线图不起作用,我认为响应不正确,因为控制台中显示未捕获的语法错误:意外标记:。 这是代码c: [WebMethod] public static string GetChart(string country) { StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.

我正在尝试在ASP.NET中使用图表js制作折线图,但这不起作用,在我尝试使用饼图之前,效果很好,但折线图不起作用,我认为响应不正确,因为控制台中显示未捕获的语法错误:意外标记:。 这是代码c:

 [WebMethod]
    public static string GetChart(string country)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("{");
        sb.Append("labels:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\"],");
        sb.Append("datasets:[");

            System.Threading.Thread.Sleep(50);
            string color = "rgba(220,220,220,0.2)";
            //
            sb.Append("{");
            sb.Append(string.Format("fillColor:\"{0}\", strokeColor:\"{1}\", pointColor:\"{2}\", pointStrokeColor:\"{3}\", data:{4}", color, "#ACC26D", "#fff", "#9DB86D", "[203,156,99,251,305,247]"));
            //
            sb.Append("}");
            sb.Append("]");


            sb.Append("};");
        return sb.ToString();
    }
这是Javascript:

<script type="text/javascript">
    function LoadChart() {
        var chartType = parseInt($("[id*=rblChartType] input:checked").val());
        $.ajax({
            type: "POST",
            url: "inicioCliente.aspx/GetChart",
            data: "{country: '" + $("[id*=ddlCountries]").val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) {
                $("#dvChart").html("");
                $("#dvLegend").html("");
                var data = eval((r.d));
                var el = document.createElement('canvas');
                $("#dvChart")[0].appendChild(el);
                var ctx = el.getContext('2d');
                var userStrengthsChart;
                switch (chartType) {
                    case 1:
                        userStrengthsChart = new Chart(ctx).Line(data);
                        break;
                    case 2:
                        userStrengthsChart = new Chart(ctx).Doughnut(data);
                        break;
                }
                for (var i = 0; i < data.length; i++) {
                    var div = $("<div />");
                    div.css("margin-bottom", "10px");
                    div.html("<span style = 'display:inline-block;height:10px;width:10px;background-color:" + data[i].color + "'></span> " + data[i].text);
                    $("#dvLegend").append(div);
                }
            },
            failure: function (response) {
                alert('There was an error.');
            }
        });
    }
    $(function () {
        LoadChart();
        $("[id*=ddlCountries]").bind("change", function () {
            LoadChart();
        });
        $("[id*=rblChartType] input").bind("click", function () {
            LoadChart();
        });
    });


</script>

经过一段时间我找到了解决方案,问题出在eval方法上,我需要添加

 var data = (eval("(" + r.d + ")"));

谢谢

你能发布更多关于你收到的错误的信息吗?它说您在哪一行出现语法错误并将代码指向那一行。未捕获语法错误:意外标记:VM098响应:{labels:[一月、二月、三月、四月、五月、六月],数据集:[{fillColor:rgba220220,0.2,strokeColor:ACC26D,pointColor:fff,pointStrokeColor:9DB86D,data:[203156,99251305247]};我认为您应该阅读更多关于JSON的内容。所有字段名都应使用双引号:fillColor->fillColor。还要删除此行中不必要的分号:sb.Append};;->sb.Append};。如果这是有效的JSON,我建议从getChart测试您的数据。它有两个在线验证器,比如。