加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:28:15 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用带有asp.net mvc的 jquery flot图形插件.我正在尝试从JsonResult动态提取数据以填充图形. 我的问题是我似乎无法以正确的格式从JsonResult返回数据. 这是我的服务器端代码: public ActionResult JsonValues() { IListIDictionarystring,int li
我正在尝试使用带有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中,但我还没有尝试过.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读