[英]JSTree call from view to controller in MVC4
I am trying to create a dynamic JSTree in my MVC4 project. 我正在尝试在我的MVC4项目中创建一个动态JSTree。 However I am a complete beginner when it comes to Json. 然而,对于Json来说,我是一个完全的初学者。 I am attempting to make an ajax json call from my _layout.cshtml, here is the code: 我试图从我的_layout.cshtml进行ajax json调用,这里是代码:
<script type="text/javascript">
$(document).ready(function () {
$("#demo1").jstree({
"json_data": {
"ajax": {
"type": "POST",
"dataType": "json",
"contentType": "application/json;",
"url": "Home/GetAllNodes",
"data": function (node) {
return '{ "operation" : "get_children", "id" : 1 }';
},
"success": function (retval) {
return retval.d;
}
}
},
"plugins": ["themes", "json_data"]
});
});
</script>
I have taken this code from this site and have followed the steps closely, however, the project used in this example is a web form project, an I am unsure of the translation between these two projects when using json. 我从这个站点获取了这些代码,并且已经仔细地遵循了这些步骤,但是,本例中使用的项目是一个Web表单项目,我不确定在使用json时这两个项目之间的转换。
here is my method from HomeController - GetAllNodes: 这是我从HomeController的方法 - GetAllNodes:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static List<JSTreeTestMod> GetAllNodes(string id)
{
List<JSTreeTestMod> JSTreeArray = new List<JSTreeTestMod>();
JSTreeTestMod treeItem = new JSTreeTestMod();
treeItem.data = "x1";
treeItem.state = "closed";
treeItem.IdServerUse = 10;
treeItem.children = null;
treeItem.attr = new JSTreeAttribute { id = "10", selected = false };
JSTreeArray.Add(treeItem);
JSTreeTestMod treeItem2 = new JSTreeTestMod();
var children =
new JSTreeTestMod[]
{
new JSTreeTestMod { data = "x1-11", attr = new JSTreeAttribute { id = "201" } },
new JSTreeTestMod { data = "x1-12", attr = new JSTreeAttribute { id = "202" } },
new JSTreeTestMod { data = "x1-13", attr = new JSTreeAttribute { id = "203" } },
new JSTreeTestMod { data = "x1-14", attr = new JSTreeAttribute { id = "204" } },
};
treeItem2.data = "x2";
treeItem2.IdServerUse = 20;
treeItem2.state = "closed";
treeItem2.children = children;
treeItem2.attr = new JSTreeAttribute { id = "20", selected = true };
JSTreeArray.Add(treeItem2);
JSTreeTestMod treeItem3 = new JSTreeTestMod();
var children2 =
new JSTreeTestMod[]
{
new JSTreeTestMod { data = "x2-11", attr = new JSTreeAttribute { id = "301" } },
new JSTreeTestMod { data = "x2-12", attr = new JSTreeAttribute { id = "302" }, children= new JSTreeTestMod[]{new JSTreeTestMod{data = "x2-21", attr = new JSTreeAttribute { id = "3011" }}} },
new JSTreeTestMod { data = "x2-13", attr = new JSTreeAttribute { id = "303" } },
new JSTreeTestMod { data = "x2-14", attr = new JSTreeAttribute { id = "304" } },
};
treeItem3.data = "x3";
treeItem3.state = "closed";
treeItem3.IdServerUse = 30;
treeItem3.children = children2;
treeItem3.attr = new JSTreeAttribute { id = "30", selected = true };
JSTreeArray.Add(treeItem3);
return JSTreeArray;
}
Does anyone have experience using jstree in MVC4? 有没有人在MVC4中使用jstree的经验?
Maybe alittle late but i have create an MVC HTML Helper that will help you to set up a tree using latest JStree plugin, you can find it here. 也许是晚了但我已经创建了一个MVC HTML Helper来帮助你使用最新的JStree插件设置一个树,你可以在这里找到它。
https://jstreemvcwrapper.codeplex.com/ https://jstreemvcwrapper.codeplex.com/
the usage is simpler: 用法更简单:
@(Html.JSTreeView(Model.TreeNodes)
.ContrainerID("TreeContainer")
.Children(n => n.Childern)
.ItemID(n=>n.NodeID.ToString())
.ItemType(n=>n.NodeType.ToString())
.IsSelected(n=> n.NodeID == 1)
.OnNodeSelect("onTreeFolderSelected")
.Plugins("wholerow", "types")
.CoreConfig(new
{
expand_selected_onload = true,
multiple = false
})
.TypesConfig(new
{
Root = new { icon = "../Content/jsTree/Root.png" },
Folder = new { icon = "../Content/jsTree/Folder.png" },
File = new { icon = "../Content/jsTree/File.png" },
@default = new { icon = "../Content/jsTree/Folder.png" }
})
.ItemTemplate(@<text> <a href="#" >@item.NodeName</a> </text>))
you do not have to create a specific model for the JSTree. 您不必为JSTree创建特定模型。 and IEnumrable
will work as a source .. just specific the childern property using: 和IEnumrable
将作为一个源..只是特定的childern属性使用:
.Children(n => n.Childern)
method and the rest will be done.. 方法,其余的将完成..
it is still in early beta .. but will help you to jump start that project of yours.. 它还处于早期测试阶段......但是会帮助你快速启动你的项目..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.