我正在尝试让jStree(jQuery树控件)在我的ASP.NET(C#)页面中工作。我正在使用WCF服务返回JSON的测试字符串。
在浏览器中打开WCF服务URL可以正常工作
-如果我转到URL(http://localhost/website/GetTree),我会得到JSON(看起来就像在浏览器中打开XML一样,语法突出显示和可折叠的制表符)
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">{"attr": { "id": 2, "rel": "default" }, "data": "A node", "children": [ { "data": "Child 1", "attr": { "id": 43, "rel": "document" } }, {"data": "Child 2", "attr": { "id": 25, "rel": "document"} } ] }</string>
jstree本身工作正常
-如果我将同一个JSON放在文档中的“manually”中,则如下所示:
"json_data": {
"data":
[{
"attr": { "id": 2, "rel": "default" },
"data": "A node",
"children":
[{
"data": "Child 1", "attr": { "id": 43, "rel": "document" }
},{
"data": "Child 2", "attr": { "id": 25, "rel": "document"}
}]},{
"attr": { "id": "li.node.id", "rel": "document" },
"data": {
"title": "Long format demo",
"attr": { "href": "#" }
}}]},
我看到树上有那些节点。
但是,将两者结合起来:
"json_data": {
"ajax": {
"url": "GetTree",
"data": function (n) {
return {
};
}
}
},
…失败了。jstree显示为
“正在加载…”
和一个动画加载gif。而且它
做
在WCF服务方法中命中一个断点(就像浏览它一样)。
A:知道我哪里出了问题吗?
B:一个主意
我是怎么发现的
怎么了?jstree文档没有帮助,我看不到任何错误消息。
谢谢。
更新:已解决
感谢Mikael Eliasson指出我的服务必须返回XML而不是JSON。
WCF服务代码:
// this responseformat bit below fixed it
[WebGet(UriTemplate = "GetTesto", ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
public Testo GetTesto()
{
return new Testo();
}