微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – ASP.NET MVC JsonResult和JQuery flot

我正在尝试使用带有asp.net mvc的 jquery flot图形插件.我正在尝试从JsonResult动态提取数据以填充图形.

我的问题是我似乎无法以正确的格式从JsonResult返回数据.

这是我的服务器端代码

public ActionResult JsonValues()
    {
        IList<IDictionary<string,int>> listofvalues = new List<IDictionary<string,int>>();
        IDictionary<string,int> values1 = new Dictionary<string,int>();
        values1.Add("2003",10882);
        values1.Add("2002",10383);
        values1.Add("2001",10020);
        values1.Add("2000",9762);
        values1.Add("1999",9213);
        values1.Add("1998",8720);

        IDictionary<string,int> values3 = new Dictionary<string,int>();
        values3.Add("2003",599);
        values3.Add("2002",510);
        values3.Add("2001",479);
        values3.Add("2000",457);
        values3.Add("1999",447);
        values3.Add("1998",414);

        listofvalues.Add(values1);
        listofvalues.Add(values3);

        JsonResult result = new JsonResult { Data = listofvalues };
        return result;
    }

这是我的客户端代码

$(function() {
        $.getJSON("/path/to/JsonValues",function(data) {
            var plotarea = $("#plot_area");
            $.plot(plotarea,data);
        });
    });

注意,以下客户端代码工作正常:

$(function() {
        var points = [
            [[2003,10882],[2002,10383],[2001,10020],[2000,9762],[1999,9213],[1998,8720]],[[2003,599],510],479],457],447],414]]
        ];

        var plotarea = $("#plot_area");
        $.plot(plotarea,points);
    });

鉴于以上工作正常,似乎只是正确格式化返回的JsonResult.我怎样才能做到这一点?字典列表是最好的返回类型,还是我应该使用其他东西?或者我是否应该使用javascript中的函数来正确格式化数据?

看起来真的很简单,但我无法让它发挥作用.

解决方法

检查你的Json返回给客户端,它将是具有键值对的Json对象,如:

{{'2003':10882,'2002':10383},....}

你需要一个阵列数组的地方.

[[[2003,10383]],...]

您可以自己生成Json字符串并返回结果

StringBuilder sb = new StringBuilder();
sb.append("[2003,")
return Json("[" + sb.ToString() + "]");

或者您可以尝试将值存储在可能生成所需Json的Arrays中,但我还没有尝试过.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐