javascript - 流程图无返回数据

标签 javascript asp.net asp.net-mvc linq flot

我想生成图表,但没有显示结果。 这是我的 Controller 代码:

public dynamic Get(int year)
        {
            var alldata = (from item in db.PT_OrderedList_vw
                           where item.expected_date.Value.Year == year
                           group item by item.expected_date.Value.Month into grp
                           select new
                           {
                               totalPT = grp.Sum(x => x.totalPT.Value),
                               Month = (double)grp.Max(x => x.expected_date.Value.Month)
                           }).ToList();
            var final_data = new[]
                {  
                    new { label="Purchase", data = alldata.Select(x=>new double[]{ x.totalPT, x.Month })}

                };

            final_data;
        }

查看:

<section style="width: 500px; margin: 10px; text-align:center;">
    <div id="placeholder" style="width: 500px; height: 300px;"></div>
    <h3 style="font-size:1.4em">Traffic Overview - 2012 </h3>
</section>

我放在 View 页面上方的脚本:

<script>
    var dataurl = 'Get/';
    // setup plot
    var options = {
        legend: {
            show: true,
            margin: 10,
            backgroundOpacity: 0.9
        },
        points: {
            show: true,
            radius: 3
        },
        lines: {
            show: true
        },
        grid: { hoverable: true, clickable: true },
        yaxis: { min: 0, tickFormatter: formatter },
        xaxis: { ticks: [[1, "Jan"], [2, "Feb"], [3, "Mar"], [4, "Apr"], [5, "May"], [6, "Jun"], [7, "Jul"], [8, "Aug"], [9, "Sep"], [10, "Oct"], [11, "Nov"], [12, "Dec"]] }

    };
    function formatter(val, axis) {
        return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    }
    $.ajax({
        url: dataurl,
        method: 'GET',
        data: { year: 2016 },
        dataType: 'json',
        success: function (data) {
            $.plot($("#placeholder"), data, options);
        }
    });


    var previousPoint = null;
    $("#placeholder").bind("plothover", function (event, pos, item) {
        if (item) {
            if (previousPoint != item.dataIndex) {
                previousPoint = item.dataIndex;

                $("#tooltip").remove();
                var x = item.datapoint[0],
                    y = item.datapoint[1].toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
                showTooltip(item.pageX, item.pageY, item.series.label + ": " + y);

            }
        }
        else {
            $("#tooltip").remove();
            previousPoint = null;
        }
    });


    function showTooltip(x, y, contents) {
        $('<div id="tooltip">' + contents + '</div>').css({
            position: 'absolute',
            display: 'none',
            top: y + 5,
            left: x + 5,
            border: '1px solid #fdd',
            padding: '2px',
            'background-color': '#fee',
            opacity: 0.80
        }).appendTo("body").fadeIn(200);
    }
</script>

结果:

我需要为此生成一张图表,但它什么也没显示。 这是我第一次这样做,不知道这段代码有什么问题。我刚刚研究了所有内容并遵循谷歌提供的一些步骤。

我需要意见或建议才能实现此图。

最佳答案

您的 Controller 代码必须返回 json 的 ActionResult

public ActionResult Get(int year)
{

      //code omitted
      return Json(final_data;, JsonRequestBehavior.AllowGet);

}

<强> JsonResult Class

关于javascript - 流程图无返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873409/

相关文章:

javascript - 计算一个值在数组中出现的次数 - javascript - Angular - lodash

javascript - 关闭谷歌地图 infowindow.open(map) 异步行为

javascript - 使用 ASP 复选框和 JavaScript 折叠表行

javascript - 仅当元素加载时才运行 vue 组件

javascript - 如何通过循环将解析推送到数组?

asp.net - HTML 有问题?滚动条不通过 window.open 出现

asp.net - 脚本标签和 "<%....%>"标签有什么区别?

asp.net-mvc - 一句话,这样做 ASP.NET (MVC) 路由崩溃

c# - 多个开发人员使用具有不同设置的单个 web.config

javascript - 使用自定义样式进行 jQuery 非侵入式验证 .NET MVC 5