MVC3 JSON Telerik MVC TreeView Javascript

MVC3 JSON Telerik MVC TreeView Javascript,javascript,json,asp.net-mvc-3,telerik,Javascript,Json,Asp.net Mvc 3,Telerik,我正在尝试从json绑定数据。在控制器中,我正在发送 ...... public JsonResult LoadTree() ........ return Json(jn, JsonRequestBehavior.AllowGet); 在调试中,我在jn中获得值(47项,每个项有两个条目(文本和值) 在视图中,我使用以下脚本: function onDataBinding(e) { var url = 'CourseCases/LoadTree'; var result;

我正在尝试从json绑定数据。在控制器中,我正在发送

......
public JsonResult LoadTree()
........
return Json(jn, JsonRequestBehavior.AllowGet);
在调试中,我在jn中获得值(47项,每个项有两个条目(文本和值)

在视图中,我使用以下脚本:

function onDataBinding(e) {
    var url = 'CourseCases/LoadTree';
    var result;
    $.ajax({
        url: url,
        data: {},
        contentType: "application/json",
        success: function (data) {
            alert(data);
            var treeview = $("#TreeView").data("tTreeView");
            treeview.bindTo(data);
        }
    });
}
它不工作,警报显示对象,对象;树视图为空!
知道为什么吗?提前谢谢。

也许你应该直接在$.post的回调方法中调用treeview.bindTo。我想用当前的代码,你可能会在回调中确保jn==内容之前将treeview绑定到jsonObject==jn。如果你发出警报,你会增加很大的延迟,这会给AJAX post足够的时间来完成并运行callback.

可能您应该直接在$.post的回调方法中调用treeview.bindTo。我想用当前的代码,您可能会在回调中确保jn==内容之前将treeview绑定到jsonObject==jn。如果您发出警报,会增加很大的延迟,这会给AJAX post足够的时间来完成并运行回调。

实际上您发送的属性应该被称为
Value
Text
,而不是
Value
Text

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult LoadTree()
    {
        var jn = new[] 
        {
            new { Value = "1", Text = "Item 1" },
            new { Value = "2", Text = "Item 2" },
            new { Value = "3", Text = "Item 3" },
        };
        return Json(jn, JsonRequestBehavior.AllowGet);
    }
}
视图(
~/Views/Home/Index.cshtml
):


函数onDataBinding(e){
var url='@url.Action(“LoadTree”);
var结果;
$.ajax({
url:url,
数据:{},
成功:功能(数据){
var treeview=$(“#treeview”).data(“tTreeView”);
treeview.bindTo(数据);
}
});
}    
@(Html
.Telerik()
.TreeView()
.名称(“树视图”)
.客户事件(事件=>
{
事件。OnDataBinding(“OnDataBinding”);
})
)

实际上,您发送的属性应该被称为
Value
Text
,而不是
Value
Text
。下面是一个对我来说很好的例子

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult LoadTree()
    {
        var jn = new[] 
        {
            new { Value = "1", Text = "Item 1" },
            new { Value = "2", Text = "Item 2" },
            new { Value = "3", Text = "Item 3" },
        };
        return Json(jn, JsonRequestBehavior.AllowGet);
    }
}
视图(
~/Views/Home/Index.cshtml
):


函数onDataBinding(e){
var url='@url.Action(“LoadTree”);
var结果;
$.ajax({
url:url,
数据:{},
成功:功能(数据){
var treeview=$(“#treeview”).data(“tTreeView”);
treeview.bindTo(数据);
}
});
}    
@(Html
.Telerik()
.TreeView()
.名称(“树视图”)
.客户事件(事件=>
{
事件。OnDataBinding(“OnDataBinding”);
})
)

谢谢,问题是我在控制器中调试程序时看到了json数据,但当我在视图中有警报时,它是空的!!谢谢,问题是我在控制器中调试程序时看到了json数据,但当我在视图中有警报时,它是空的!!谢谢Darin的帮助。谢谢Darin的帮助。