Asp.net MVC EF EasyUi DataGrid获取json数据

时间:2022-11-28 19:01:04
如题,在MVC EF里如何将Controller里的json传给前端的easyui datagrid,以下是代码:
 var opera;
            $('#dgCMSTC').datagrid({
                method: 'get',
                 url: '/CMSTC/Index',
                singleSelect: true,
                fit: true,
                border: false,
                pagination: true,
                pageSize: 20,
                columns: [[
                    { field: 'TC001', title: '仓库编号', width: 100 },
                    { field: 'TC002', title: '仓库名称', width: 100 },
                    { field: 'TC003', title: '仓库电话', width: 100 },
                    { field: 'CREATOR', title: '创建者', width: 100 },
                    { field: 'CREATE_DATE', title: '创建日期', width: 100 },
                    { field: 'MODIFIER', title: '修改者', width: 100 },
                    { field: 'MODI_DATE', title: '修改日期', width: 100 }
                ]]
}
这只是一部分easyui代码, 除了url其它的和webform的一样,datagrid界面:
Asp.net MVC EF EasyUi DataGrid获取json数据
Index方法:
public ActionResult Index()
        {
            using (var myDb = new JBJXC.Models.Db.jinbudb<JBJXC.Models.BASIC.CMSTC>(strConn))
            {
                var myCMSTC = myDb.QueryEntity();       //查询数据都是正确的List泛型数据
                JsonResult jsonData = new JsonResult
                {
                    Data = myCMSTC
                };
                //return Json(jsonData, "text/html", JsonRequestBehavior.AllowGet);
                return View();
            }
        }
这个Index里的方法究竟要怎么写才会把Json数据传给前端绑定easyui的datagrid组件,在webform里感觉很简单,mvc里还有点整不明白

6 个解决方案

#1


好久没用mvc了,这个方法返回的是视图数据,这个视图数据会根据 columns里面的field 来对应绑定。关于datagrid绑定原理,你可以打开easy那个js文件找找。

#2


jsonData  直接返回这个就是data了

至于前台界面怎样绑定  你自己看文档吧

#3


 

public ActionResult Index()
        {
            using (var myDb = new JBJXC.Models.Db.jinbudb<JBJXC.Models.BASIC.CMSTC>(strConn))
            {
                var myCMSTC = myDb.QueryEntity();       //查询数据都是正确的List泛型数据
                                   
            }
          return Json(myCMSTC,JsonRequestBehavior.AllowGet);
          //前台的field 字段名和你实体的字段名相同就可以绑定上了,用F12调试看看是否发送了请求以及是否返回了json数据,有错很快也能能整明白
        }

#4


control中用        return Json(model);      返回json数据
       js中用          $('#dg_CommGreen').datagrid('loadData', data);  绑定json数据

#5


1,返回类型必须为:JsonResult
2,必须满足easyui datagrid的json数据格式,如果:{total:100,rows:[{},{}]}

eg.public JsonResult Index()
         {
             using (var myDb = new JBJXC.Models.Db.jinbudb<JBJXC.Models.BASIC.CMSTC>(strConn))
             {
                 var myCMSTC = myDb.QueryEntity();       //查询数据都是正确的List泛型数据
                JsonResult jsonData = new JsonResult
                 {
                     Data = myCMSTC
                 };
                 return Json(new { total= 2, rows= myCMSTC.ToList()}, "text/html", JsonRequestBehavior.AllowGet);
                
             }
         }

#6


谢谢,搞定了,分开了两个方法,至于为什么自己去想 Asp.net MVC EF EasyUi DataGrid获取json数据,代码如下,给有需要兄弟看下:
public ActionResult Index()
        {
            return View();
        }

        public JsonResult GetJson()
        {
            using (var myDb = new JBJXC.Models.Db.jinbudb<JBJXC.Models.BASIC.CMSTC>(strConn))
            {
                var myCMSTC = myDb.QueryEntity();       //查询数据都是正确的
                return Json(new { total = myCMSTC.Count, rows = myCMSTC }, JsonRequestBehavior.AllowGet);

            }
        }

JS Easy Ui:
$.ajax({
                method: 'get',
                dataType: 'json',
                url: '/CMSTC/GetJson',
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $.messager.alert('info', errorThrown, 'info');
                },
                success: function (data) {
                    $('#dgCMSTC').datagrid('loadData', data);
                }
            });
首先初始化DataGrid,再用这个ajax方法加载数据给datagrid就好了!
谢谢大家,结贴给分!!

#1


好久没用mvc了,这个方法返回的是视图数据,这个视图数据会根据 columns里面的field 来对应绑定。关于datagrid绑定原理,你可以打开easy那个js文件找找。

#2


jsonData  直接返回这个就是data了

至于前台界面怎样绑定  你自己看文档吧

#3


 

public ActionResult Index()
        {
            using (var myDb = new JBJXC.Models.Db.jinbudb<JBJXC.Models.BASIC.CMSTC>(strConn))
            {
                var myCMSTC = myDb.QueryEntity();       //查询数据都是正确的List泛型数据
                                   
            }
          return Json(myCMSTC,JsonRequestBehavior.AllowGet);
          //前台的field 字段名和你实体的字段名相同就可以绑定上了,用F12调试看看是否发送了请求以及是否返回了json数据,有错很快也能能整明白
        }

#4


control中用        return Json(model);      返回json数据
       js中用          $('#dg_CommGreen').datagrid('loadData', data);  绑定json数据

#5


1,返回类型必须为:JsonResult
2,必须满足easyui datagrid的json数据格式,如果:{total:100,rows:[{},{}]}

eg.public JsonResult Index()
         {
             using (var myDb = new JBJXC.Models.Db.jinbudb<JBJXC.Models.BASIC.CMSTC>(strConn))
             {
                 var myCMSTC = myDb.QueryEntity();       //查询数据都是正确的List泛型数据
                JsonResult jsonData = new JsonResult
                 {
                     Data = myCMSTC
                 };
                 return Json(new { total= 2, rows= myCMSTC.ToList()}, "text/html", JsonRequestBehavior.AllowGet);
                
             }
         }

#6


谢谢,搞定了,分开了两个方法,至于为什么自己去想 Asp.net MVC EF EasyUi DataGrid获取json数据,代码如下,给有需要兄弟看下:
public ActionResult Index()
        {
            return View();
        }

        public JsonResult GetJson()
        {
            using (var myDb = new JBJXC.Models.Db.jinbudb<JBJXC.Models.BASIC.CMSTC>(strConn))
            {
                var myCMSTC = myDb.QueryEntity();       //查询数据都是正确的
                return Json(new { total = myCMSTC.Count, rows = myCMSTC }, JsonRequestBehavior.AllowGet);

            }
        }

JS Easy Ui:
$.ajax({
                method: 'get',
                dataType: 'json',
                url: '/CMSTC/GetJson',
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $.messager.alert('info', errorThrown, 'info');
                },
                success: function (data) {
                    $('#dgCMSTC').datagrid('loadData', data);
                }
            });
首先初始化DataGrid,再用这个ajax方法加载数据给datagrid就好了!
谢谢大家,结贴给分!!