关于easyui获取c#后台数据报错 Cannot read property 'length' of undefined的问题

easyui可以直接在html页面通过url获取后台数据,官网上的介绍是以json文件为例子的。一开始做测试的时候在项目中导入json文件,发现页面找不到,于是直接改成了从controller层获取数据。

html代码:

Item ID Product List Price Unit Cost Attribute
这里的url写的是cshtml页面所对应的controller文件下的一个action名,action返回一个json数据。然后就报了上面的错误:


关于easyui获取c#后台数据报错 Cannot read property 'length' of undefined的问题_第1张图片

后来在一篇介绍中看到,造成这个错误的原因有两个,一个是需要将json字符串转换为json对象,另一个是在datagrid里使用时json格式要求有total和rows。

c#代码:

//返回json
        public JObject JsonTest()
        {
            string s = "{ 'total':100,'rows':[{'itemid':2,'productid':5,'listprice':5,'unitcost':5,'attr1':5}]}";
            JObject js = JObject.Parse(s);

            return js;
        }
这是测试数据,将字符串转换为JObject格式返回。
需要的引用:

using Newtonsoft.Json.Linq;

当返回的是JsonResult格式的或者是不带total和rows的json对象的时候就会报错。

结果:

关于easyui获取c#后台数据报错 Cannot read property 'length' of undefined的问题_第2张图片

你可能感兴趣的:(EasyUI,c#)