Piechart在PartialView中不起作用

时间:2018-06-27 11:04:56

标签: javascript model-view-controller partial-views pie-chart

通常,该应用程序正在使用ViewBag。但是当我使用局部视图时,就不能使用viewbag。因此,我将其作为字符串抛出。数据正在发送,但无法打印饼图。

PartialView中的Javascript

@model字符串     

    window.onload = function () {

        var chart = new CanvasJS.Chart("chartContainer", {
            theme: "light1", // "light1", "light2", "dark1", "dark2"
            exportEnabled: true,
            animationEnabled: true,
            title: {
                text: "Indian Smartphone Market Share"
            },
            subtitles: [{
                text: "Q2, 2016"
            }],
            data: [{
                type: "pie",
                startAngle: 180,
                toolTipContent: "<b>{label}</b>: {y}%",
                showInLegend: "true",
                legendText: "{label}",
                indexLabel: "{label} - {y}%",
                dataPoints: @Html.Raw(Model),
            }]
        });
        chart.render();

    }
</script>

控制器

 [HttpPost]
    public ActionResult Index(List<string> ulkeler)
    {
        NwContext db = new NwContext();
        List<Ulke> ulkecs = new List<Ulke>();
        foreach (var item in ulkeler)
        {
           ulkecs.Add( new Ulke { count = db.Customers.Where(x => x.Country == item).Count(),name =item });
        }

        List<DataPoint> dataPoints = new List<DataPoint>();
        foreach (var item in ulkecs)
        {

            dataPoints.Add(new DataPoint(item.name.ToString(), Convert.ToInt32(item.count)));

        }

        string a= JsonConvert.SerializeObject(dataPoints);
        return PartialView("PartialViewExample", a);
    }

1 个答案:

答案 0 :(得分:0)

我这样固定:

我删除了此window.onload = function () {,写了function show() {

<button onclick="show()"></button>