[英]jsTree AJAX not calling MVC Controller
我正在使用带有ASP.NET MVC 4的jsTree插件来构建树。这是我在详细说明之前的代码:
HTML:
<div id="MainTree"></div>
<div onclick="$load();">Load Tree</div>
使用Javascript:
$load = function(){
$('#MainTree').jstree({
"json_data": {
"ajax": {
"url": "/Home/GetTreeData",
"type": "POST",
"dataType": "json",
"contentType": "application/json charset=utf-8"
}
},
"themes": {
"theme": "default",
"dots": false,
"icons": true,
"url": "/content/themes/default/style.css"
},
"plugins": ["themes", "json_data", "dnd", "contextmenu", "ui", "crrm"]
});
}
控制器:
[HttpPost]
public JsonResult GetTreeData()
{
JsTreeModel rootNode = new JsTreeModel(); // Breakpoint here, never triggered
rootNode.attr = new JsTreeAttribute();
rootNode.data = "Root";
string rootPath = "Test";
rootNode.attr.id = rootPath;
JsTreeModel t1 = new JsTreeModel();
t1.attr.id = "1";
JsTreeModel t2 = new JsTreeModel();
t2.attr.id = "2";
JsTreeModel t3 = new JsTreeModel();
t3.attr.id = "3";
rootNode.children.Add(t1);
rootNode.children.Add(t2);
rootNode.children.Add(t3);
return Json(rootNode);
}
当我单击“加载树”按钮时,将触发$load()
,并在Firefox调试中运行它而不会引发错误。 树<div>
从以下位置更改:
<div id="MainTree"></div>
至
<div role="tree" class="jstree jstree-1 jstree-default jstree-default-responsive jstree-leaf" id="MainTree">
<ul class="jstree-container-ul"></ul>
</div>
我在控制器中放置了一个断点,并在注释中注明,该断点永远不会触发; 也就是说,似乎从未进行过对Controller的调用。 我的HomeController.cs
没有语法错误。
我在这里想念什么吗?
我会自己回答这个问题,而不是把它当作一个孤儿。
这是我发现用jsTree创建树的最简单方法:
<div id="divtree">
<ul id="tree">
<li>
Subfolder 1
<ul id="tree">
<li>Pub 1</li>
<li>Pub 2</li>
<li>Pub 3</li>
</ul>
</li>
<li>
SubFolder 2
<ul id="tree">
<li>Pub 1</li>
<li>Pub 2</li>
</ul>
</li>
</ul>
</div>
<script type="text/javascript">
$(function(){
$("#divtree").jstree();
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.