我有一个foreach循环,它遍历每一行来添加一个li和一个a元素。列“星星”的当前行值被添加到a元素中,从下面的代码中可以看到,gymTypes有6行,它们是:
1星2星3星4星5星6星
因此,正如您可以想象的那样,我试图为每个元素创建html元素,但是在调试时,它只循环一次,并给出"System.StackOverflowException“的例外,然后重新加载页面。
foreach(DataRow row in gymTypes.Rows)
{
HtmlGenericControl li = new HtmlGenericControl("li");
HtmlGenericControl a = new HtmlGenericControl("a");
a.InnerText = row["stars"].ToString();
li.Controls.Add(li);
gym_tab_stars.Controls.Add(li);
}有人知道我为什么要得到这个例外吗?
谢谢
发布于 2015-07-30 20:49:35
问题是,li有自己的孩子。当呈现HTML时,这将导致堆栈溢出异常。
将li.Controls.Add(li);更改为li.Controls.Add(a)。
https://stackoverflow.com/questions/31733691
复制相似问题