ASP.NET(C#)ページでjStree(jQueryツリーコントロール)を機能させようとしています。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をdocument.readyの「手動」に配置すると次のようになります。
"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": "#" }
}}]},
それらのノードを含むツリーが表示されます。
しかし、2つを組み合わせる:
"json_data": {
"ajax": {
"url": "GetTree",
"data": function (n) {
return {
};
}
}
},
...失敗します。jstreeは、「loading...」という単語とアニメーション化されたloadinggifとして表示されます。そして、それはWCFサービスメソッド内のブレークポイントにヒットします(それを参照するのと同じように)。
A:私が間違っているという考えはありますか?
B:何が悪いのかをどうやって見つけるのか?jstreeのドキュメントは役に立ちませんでした、そして私はエラーメッセージを見ることができません。
ありがとう。
更新:解決済み
私のサービスはJSONではなくXMLを返す必要があることを指摘してくれたMikaelEliassonに感謝します。
WCFサービスコードビハインド:
// this responseformat bit below fixed it
[WebGet(UriTemplate = "GetTesto", ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
public Testo GetTesto()
{
return new Testo();
}