MVC+EF返回数据集时都会对应一个实体,这种情况当然是确定的实体,但是当返回的实体是不确定的又该如何?思前想后,觉得datatable应该可以满足需求,但是当兴致勃勃的组合完sql按照以前的方式( return Json(new { total = pageCount, rows = list }, JsonRequestBehavior.AllowGet);)返回json时前台接收报错 ”序列化类型为“System.Reflection.RuntimeModule”的对象时检测到循环引用“ 【具体原因还不是很清楚】 但是感觉就是序列化json对象是失败,转而考虑直接返回json格式字符串,代码如下:
1 JsonSerializerSettings setting = new JsonSerializerSettings() 2 { 3 ReferenceLoopHandling = ReferenceLoopHandling.Ignore 4 }; 5 6 var ret = "{\"total\":" + dt.Rows.Count + ",\"rows\":" + JsonConvert.SerializeObject(dt, setting) + "}"; 7 8 return Json(ret, JsonRequestBehavior.AllowGet);