public ActionResult testExtJsJson()
        {
            
            TreeModel ExtTree1 = new TreeModel();
            ExtTree1.id = "1";
            ExtTree1.text = "加工工艺管理";
            ExtTree1.leaf = true;
            ExtTree1.cls = "file";
            ExtTree1.href = "";
            ExtTree1.children = new List<TreeModel>();
                        //string json = JsonConvert.SerializeObject(ExtTree1);            //Response.ContentType = "text/html";
            //return View();
            return this.Json(ExtTree1, JsonRequestBehavior.AllowGet);
            //return Content("<pre>" + json+"</pre>", "text/html");
        }Ext.require([
    'Ext.tree.*',
    'Ext.data.*',
    'Ext.tip.*'
]);Ext.onReady(function() {
    Ext.QuickTips.init();
    
    var store = Ext.create('Ext.data.TreeStore', {
        proxy: {
            type: 'ajax',
            url: 'Home/testExtJsJson'
        },
        root: {
            text: 'Ext JS',
            id: 'src',
            expanded: true
        },
        folderSort: true,
        sorters: [{
            property: 'text',
            direction: 'ASC'
        }]
    });    var tree = Ext.create('Ext.tree.Panel', {
        store: store,
        viewConfig: {
            plugins: {
                ptype: 'treeviewdragdrop'
            }
        },
        renderTo: 'tree-div',
        height: 300,
        width: 250,
        title: 'Files',
        useArrows: true,
        dockedItems: [{
            xtype: 'toolbar',
            items: [{
                text: 'Expand All',
                handler: function(){
                    tree.expandAll();
                }
            }, {
                text: 'Collapse All',
                handler: function(){
                    tree.collapseAll();
                }
            }]
        }]
    });
});
其实就是把官方的例子中的url改了一下!页面总是显示:{"id":"1","text":"加工工艺管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]}用firebug看body中是<pre style="word-wrap: break-word; white-space: pre-wrap; ">{"id":"1","text":"加工工艺管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]}</pre>ps:用的是vs2010自带的asp.net mvc2 空项目

解决方案 »

  1.   

    返回的json是什么样的?
    <pre style="word-wrap: break-word; white-space: pre-wrap; "> 这个是什么啊。也是返回的?
    好像要返回一个List吧.
    return new List<TreeModel>();
      

  2.   


    public ActionResult testExtJsJson()
            {
                List<TreeModel> nav = new List<TreeModel>();            TreeModel ExtTree1 = new TreeModel();
                ExtTree1.id = "1";
                ExtTree1.text = "加工工艺管理";
                ExtTree1.leaf = true;
                ExtTree1.cls = "file";
                ExtTree1.href = "";
                ExtTree1.children = new List<TreeModel>();
                nav.Add(ExtTree1);            TreeModel ExtTree2 = new TreeModel();
                ExtTree2.id = "2";
                ExtTree2.text = "品类管理";
                ExtTree2.leaf = true;
                ExtTree2.cls = "file";
                ExtTree2.href = "";
                ExtTree2.children = new List<TreeModel>();
                nav.Add(ExtTree2);            TreeModel ExtTree3 = new TreeModel();
                ExtTree3.id = "3";
                ExtTree3.text = "等级管理";
                ExtTree3.leaf = true;
                ExtTree3.cls = "file";
                ExtTree3.href = "";
                ExtTree3.children = new List<TreeModel>();
                nav.Add(ExtTree3);            TreeModel ExtTree4 = new TreeModel();
                ExtTree4.id = "4";
                ExtTree4.text = "包装管理";
                ExtTree4.leaf = true;
                ExtTree4.cls = "file";
                ExtTree4.href = "";
                ExtTree4.children = new List<TreeModel>();
                nav.Add(ExtTree4);            TreeModel root = new TreeModel();
                root.id = "pm";
                root.text = "产品管理";
                root.href = "";
                root.cls = "folder";
                root.expanded = true;
                root.children = nav;            return this.Json(root, JsonRequestBehavior.AllowGet);
    结果就是:
    {"id":"pm","text":"产品管理","cls":"folder","expanded":true,"leaf":false,"href":"","children":[{"id":"1","text":"加工工艺管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"2","text":"品类管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"3","text":"等级管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"4","text":"包装管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]}]}用firebug看body中是:
    <pre style="word-wrap: break-word; white-space: pre-wrap; ">{"id":"pm","text":"产品管理","cls":"folder","expanded":true,"leaf":false,"href":"","children":[{"id":"1","text":"加工工艺管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"2","text":"品类管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"3","text":"等级管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"4","text":"包装管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]}]}</pre>
      

  3.   

    當然錯誤啦, ext是要json類型的,你看看返回的字符,多了<pre style="word-wrap: break-word; white-space: pre-wrap; ">和</pre>這些的,你要把這些去掉,不然js不分別不出來你這些json數據類型的,json類型只不過是一個字符串,如果你多一個逗號也不行,反正你返回的字符內容有<pre style="word-wrap: break-word; white-space: pre-wrap; ">這些肯定不行
      

  4.   


    json是用asp.net mvc2的JsonResult自己生成的(可以看我贴出来的C#源码),而且页面中输出出来的也是{"id":"pm","text":"产品管理","cls":"folder","expanded":true,"leaf":false,"href":"","children":[{"id":"1","text":"加工工艺管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"2","text":"品类管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"3","text":"等级管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]},{"id":"4","text":"包装管理","cls":"file","expanded":false,"leaf":true,"href":"","children":[]}]}加<pre>标签是我从firebug中看见的,我试过产看源码也是json,就是说我直接把结果输出到页面显示出来了了。
      

  5.   

    Home/testExtJsJson這個文件是不是JSON文件來得,.net平臺不支持JSON文件的,還有你的JSON類型有兩種,你要看他是支持哪種,分別是:
    {"total":28,"rows":[{"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}
    和你自身那種,你要看清楚示例是使用哪種規格的json類型
      

  6.   

    糾正,你原來是用MVC模式,你可以忽視下面這點
    Home/testExtJsJson這個文件是不是JSON文件來得,.net平臺不支持JSON文件的
      

  7.   

    昨天加lsw645645645的qq沟通了一下,他给了我一个例子,在我这跑起来没问题,我自己的还没调通,但是发现一个根本的问题,就是我用testExtJsJson(Controllers)返回json值并返回给testExtJsJson(Views)所以导致吧json的值直接显示出来了,我刚接触asp.net mvc 所以还不熟,其他的问题我还在找。
      

  8.   

    我也剛開始學習asp.net沒有多久,硬著頭皮搞了一個醫務室系統,架構aspx(採用了easyui框架)-ashx文件-ado,現在想開始學習MVC
      

  9.   

    多了<pre>标签,是因为context.Response.ContentType = "text/plain";这句
    注释掉就好了