ASP.NET:递归操作时报错:无法创建…

来源:互联网 发布:海信网络电视 编辑:程序博客网 时间:2024/05/16 18:46
今天在尝试使用递归法动态添加节点来实现树形结构动态生成的时候报错,如下:
ASP.NET:递归操作时报错:无法创建新的堆栈防护页面[解决]
第一印象就认为是溢出,可能是null的问题,但找来找去就是找不到问题所在,再想想既然是堆栈方面的,自己用的又是递归,就把问题指向了递归法,这个问题相信很多人都会忽视(或者说不易察觉):数据库字段的选择上可能会陷入逻辑死循环
通过设置递归方法处断点,可以看到所传参数一直是同一个,那么这个问题就很好解决了,直接查看取值和参数值,如下:
ASP.NET:递归操作时报错:无法创建新的堆栈防护页面[解决]
下面是数据库表内容:
NodeId DisplayName NodeURL DisplayOrder ParentNodeId
101 人事管理 NULL 1 0
102 日程管理 NULL 2 0
101001 机构信息 NULL 1 101
101002 部门信息 NULL 2 101
102001 我的日程 NULL 3 102
102002 我的便签 NULL 4 102
一开始错误的把节点ID搞错了,一直查找的是parentNodeId,这会陷入死循环,参数一直是0,直到报错为止,更改为NodeId后一切正常,效果如下:
ASP.NET:递归操作时报错:无法创建新的堆栈防护页面[解决]


希望对碰到相同问题的朋友有所启发,往数据库字段取值上搜寻问题所在。

原创粉丝点击