【问题标题】:MVC3 JSON Telerik MVC TreeView JavascriptMVC3 JSON Telerik MVC TreeView Javascript
【发布时间】:2012-05-21 20:42:35
【问题描述】:

我正在尝试从 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);
        }
    });
}

它不起作用,警报显示对象,对象;树视图是空白的! 知道为什么吗?提前致谢。

【问题讨论】:

    标签: javascript json asp.net-mvc-3 telerik


    【解决方案1】:

    实际上,您发送的属性应称为ValueText,而不是valuetext。这是一个适合我的示例。

    控制器:

    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):

    <script type="text/javascript">
        function onDataBinding(e) {
            var url = '@Url.Action("LoadTree")';
            var result;
            $.ajax({
                url: url,
                data: { },
                success: function (data) {
                    var treeview = $("#TreeView").data("tTreeView");
                    treeview.bindTo(data);
                }
            });
        }    
    </script>
    
    @(Html
        .Telerik()
        .TreeView()
        .Name("TreeView")
        .ClientEvents(events =>
        {
            events.OnDataBinding("onDataBinding");
        })
    )
    

    【讨论】:

    • 感谢达林的帮助。
    【解决方案2】:

    可能你应该直接在$.post的回调方法中调用treeview.bindTo。我猜使用当前代码,您可能会在回调中确保 jn == 内容之前将树视图绑定到 jsonObject == jn。如果你提醒你添加一个很大的延迟,它会给 AJAX 发布足够的时间来完成和运行回调。

    【讨论】:

    • 谢谢,问题是我在控制器中调试程序时看到了json数据,但是当我在视图中有警报时它是空的!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多