我有一个foreach循环遍历每一行以添加li
和a
元素。从下面的代码中可以看到,'stars'列的当前行值被添加到a
元素,gymTypes有6行:
1 STAR 2 STAR 3星 4 STAR 5星 6 STAR
所以你可以想像我想为他们创造的每一个html元素,但是在调试时,它只能通过foreach循环一次,并给出了“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);
}
有谁知道为什么我会收到这个例外?
由于
答案 0 :(得分:0)
问题是li
本身就是一个孩子。这是在呈现HTML时导致堆栈溢出异常。
将li.Controls.Add(li);
更改为li.Controls.Add(a)
。