Как назначить данные JSON для JIT Spacetree из ActionResult MVC
Я создаю JIT-пространство, как показано ниже: http://philogb.github.io/jit/static/v20/Jit/Examples/Spacetree/example1.html
Мне нужно построить динамический Json для него, используя данные, поступающие из таблицы базы данных в MVC.
В настоящее время я вызвал ActionResult следующим образом:
var url = "@Url.Action("BinaryTreeData", "Dashboard")";
$.post(url, {}, function (data, status) {
var json1 = $.parseJSON(data.html);
alert(json1.bar);
});
Как построить динамический Json в ActionResult и назначить его дереву?
2 ответа
Используйте метод jquery ajax и укажите json в качестве типа для ожидаемого ответа. На стороне сервера вы можете вернуть JsonResult или использовать сериализатор javascript в более общем виде, возможно, даже определить свой собственный результат действия (что может быть полезно в зависимости от того, что еще вам нужно будет сделать). Сериализаторы в.NET способны сериализовать различные графы объектов через разные типы, но все это зависит от структуры извлеченных данных из базы данных (я не могу точно догадаться, что у вас там). Тем не менее, я думаю, что вы можете начать этот путь и найти большинство ответов в документации, но будьте осторожны - сериализаторы.NET JSON имеют некоторые особенности в серых областях JSON (например, форматы даты и времени).
Да, вы можете сделать это, как я. Я сделал то же самое:
вызов initialiseData()
вместо init()
;
function initialiseData(){
url = //your file path
$.ajax({
url: url,
type: 'GET',
datatype: "html",
success: function(data) {
init(data);
},
error: function(e) {
console.log(e.message);
}
});
}
Измените свою функцию init() на это.
init(json){
...
}
Это будет работать.
Примечание: вы должны иметь точный формат JSON, как показано в примере.