0、为什么报错?
在解决问题前,是否经过这样的报错?
说序列化类型未xxx的对象时检测到循环引用?
这种大概率是因为在数据库设计时键值与外键等字段产生冲突,导致控制器产生循环使用
尽管在控制器中数据已经查询出来,但是依旧报错。
当然,如果以调试数据库字段来解决这个问题,那么也是可以的,只不过更麻烦罢了。
1、layui表格序列化的过程
在使用layui的table组件时,它需要的是一个含有data,msg,code,count的类来接收所收到的数据,某些方面来说,传值时强制设置code不为0也可以解决table组件code为0的错误。
而在这里,我们在控制器中查询出来的数值都存在于这个类的data属性中,而count就是查询出来的数值的总数。
我们必须保证data属性是一串数组,以数组的形式包裹着对应数值对象
2、传入视图时layui的格式
而光是控制器是数组还不行,从控制器传值到视图中,传值的格式必须是以json格式进行传值,所以有相关报错也可以先试着转换成json格式,再将值传入视图。
尽管说,json本身就是以一个数组的形式来传输,但,数组这玩意,不就是通用于大多数编程语言中的吗?
3、处理方式
如何序列化的问题?其实很简单,我们只需要一行代码即可。
db.Configuration.ProxyCreationEnabled = false;
将这行代码放在查询命令前,就可以省略循环引用的问题,默认ProxyCreationEnabled属性为true
例如:
myModels.Configuration.ProxyCreationEnabled = false;// 解决循环引用
varlinqResult = myModels.B_AmountType.Single.ToList();// 查询语句
returnJson(linqResult, JsonRequestBehavior.AllowGet); // 返回查询结果至视图
如果你不明白此处的db和myModels的话,我解释的话:db即你数据库的实例对象,myModels即你数据库的实例对象的接收变量
即上图的声明数据库实例对象
因为数据库在mvc中是一个映射内容,因此,我们并不能直接使用。
以上,本篇内容完结。
在解决问题前,是否经过这样的报错?
说序列化类型未xxx的对象时检测到循环引用?
这种大概率是因为在数据库设计时键值与外键等字段产生冲突,导致控制器产生循环使用
尽管在控制器中数据已经查询出来,但是依旧报错。
当然,如果以调试数据库字段来解决这个问题,那么也是可以的,只不过更麻烦罢了。
1、layui表格序列化的过程
在使用layui的table组件时,它需要的是一个含有data,msg,code,count的类来接收所收到的数据,某些方面来说,传值时强制设置code不为0也可以解决table组件code为0的错误。
而在这里,我们在控制器中查询出来的数值都存在于这个类的data属性中,而count就是查询出来的数值的总数。
我们必须保证data属性是一串数组,以数组的形式包裹着对应数值对象
2、传入视图时layui的格式
而光是控制器是数组还不行,从控制器传值到视图中,传值的格式必须是以json格式进行传值,所以有相关报错也可以先试着转换成json格式,再将值传入视图。
尽管说,json本身就是以一个数组的形式来传输,但,数组这玩意,不就是通用于大多数编程语言中的吗?
3、处理方式
如何序列化的问题?其实很简单,我们只需要一行代码即可。
db.Configuration.ProxyCreationEnabled = false;
将这行代码放在查询命令前,就可以省略循环引用的问题,默认ProxyCreationEnabled属性为true
例如:
myModels.Configuration.ProxyCreationEnabled = false;// 解决循环引用
varlinqResult = myModels.B_AmountType.Single.ToList();// 查询语句
returnJson(linqResult, JsonRequestBehavior.AllowGet); // 返回查询结果至视图
如果你不明白此处的db和myModels的话,我解释的话:db即你数据库的实例对象,myModels即你数据库的实例对象的接收变量
即上图的声明数据库实例对象
因为数据库在mvc中是一个映射内容,因此,我们并不能直接使用。
以上,本篇内容完结。