来自MVC Controller ViewBag的vis.js数据集

时间:2016-07-11 00:08:59

标签: javascript c# json asp.net-mvc linq

我是JSON的新手,我正在尝试将一些数据插入vis.js库。现在我有一个控制器:

public ActionResult Vis()
        {
            var data = _context.Primers.Select(p => new { id = p.Id, label = p.Code }).ToList();
            JsonResult primers = new JsonResult() { Data = data };
            ViewBag.Primers = Json(primers);
            return View();
        }

vis.js文档包含以下入门代码:

    // create an array with nodes
    var nodes = new vis.DataSet([
        {id: 1, label: 'Node 1'},
        {id: 2, label: 'Node 2'},
        {id: 3, label: 'Node 3'},
        {id: 4, label: 'Node 4'},
        {id: 5, label: 'Node 5'}
    ]);         

所以我认为我只需要创建自己的var nodes,将其放在那里就可以了。我在上面的EF Linq查询中创建对象时遇到了麻烦。我使用以下代码进行调试:

var primers = JSON.parse('@Html.Raw(Json.Encode(ViewBag.Primers))');
var visPrimers = new vis.DataSet(primers);
console.log(visPrimers);

但是我可以看到对象visPrimers是Length: 0data属性是空的。我必须转到_options -> Data -> data对象中的visPrimers才能找到我的Linq查询返回的数组。

我不确定我这样做是对的。我知道vis.DataSet可以获取Json数据,因为他们的文档是这样说的,但我不确定我需要从控制器格式化数据以使其格式与

相同
[
        {id: 1, label: 'Node 1'},
        {id: 2, label: 'Node 2'},
        {id: 3, label: 'Node 3'},
        {id: 4, label: 'Node 4'},
        {id: 5, label: 'Node 5'}
    ]

vis.DataSet函数需要。

我希望这是有道理的。任何和所有帮助表示赞赏!

0 个答案:

没有答案