最近遇到个奇怪的问题,使用Ext 的Store获取服务器的json数据时,浏览器显示一个下载对话框,下载的文件里就是json数据,不知道问什么浏览器把json数据当做文件下载了而不是存在Store中。我的代码如下:
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>Basic Tree Demo</title>
    <link type="text/css" rel="Stylesheet" href="../../ext-4.0.2a/resources/css/ext-all.css" />
    <script type="text/javascript" src="../../ext-4.0.2a/ext-all-debug.js"></script>
    <script type="text/javascript" language="javascript">
        Ext.onReady(function () {
            Ext.define('City', {
                extend: 'Ext.data.Model',
                fields: [{
                    name: 'id', type: 'int'
                }, {
                    name: 'name', type: 'string'
                }, {
                    name: 'p_id', type: 'int'
                }, {
                    name: 'iscity', type: 'boolean'
                }]
            });
            var citystore = Ext.create('Ext.data.Store', {
                model: 'City',
                proxy: {
                    type: 'ajax',
                    url: '../../Controllers/TreeDemoController/TreeCities',
                    reader: {
                        type: 'json',
                        model: 'City'
                    }
                },
                autoLoad: true
            });
            Ext.create('Ext.grid.Panel', {
                title: '城市表',
                store: citystore,
                columns: [{
                    header: 'City Id', dataIndex: 'id'
                }, {
                    header: 'City Name', dataIndex: 'name'
                }, {
                    header: 'Parent Id', dataIndex: 'p_id'
                }, {
                    header: 'Is City', dataIndex: 'iscity'
                }],
                renderTo: Ext.getBody()
            });
        });
    </script>
</head>
<body>
    <div>
    </div>
</body>
</html>
下载的文件里的内容是这样的:[{"id":1,"name":"中国","p_id":0,"iscity":false},{"id":2,"name":"安徽","p_id":1,"iscity":false},{"id":3,"name":"江苏","p_id":1,"iscity":false},{"id":4,"name":"浙江","p_id":1,"iscity":false},{"id":5,"name":"合肥","p_id":2,"iscity":true},{"id":6,"name":"安庆","p_id":2,"iscity":true},{"id":7,"name":"芜湖","p_id":2,"iscity":true},{"id":8,"name":"南京","p_id":3,"iscity":true},{"id":9,"name":"杭州","p_id":4,"iscity":true},{"id":10,"name":"无锡","p_id":3,"iscity":true},{"id":11,"name":"苏州","p_id":3,"iscity":true}]不知道错在哪里,请高手们指点,谢谢!

解决方案 »

  1.   

    后台指向的是一个MVC的方法,是从数据库中读取纪录,内容如下: public JsonResult TreeCity()
            {
                using (ExampleDatabaseContext dbContext = new ExampleDatabaseContext())
                {
                    var js_cities = from t in dbContext.DsCity select t;
                    return Json(js_cities.ToList (),JsonRequestBehavior.AllowGet);
                }
            }
      

  2.   


    还是一样出现下载框  public ActionResult TreeCity()
            {
                using (ExampleDatabaseContext dbContext = new ExampleDatabaseContext())
                {
                    var js_cities = from t in dbContext.DsCity select t;
                    return Json(js_cities.ToList (),JsonRequestBehavior.AllowGet);
                }
            }