我有一个包含一些控件、用户控件等的页面
当我从普通 <div id="foo">
更改一个 div 时到 <div id="foo" runat="server">
布局完成更改。
为什么会这样,我该如何预防?
我正在使用 2.0 .NET 框架
是否因为 .NET 更改了我的 ID,这显然是我不想要的?
最佳答案
如果您在 CSS 中定位 div 控件的 ID,然后在服务器上运行该控件,您会发现它不再应用该样式。
这是因为 ASP.NET 有一个内置机制 (INamingContainer) 来确保您没有多个控件同名。它通过添加容器前缀来做到这一点,因此您最终得到:
<div id="ctl00_ctl00_myDivName" runat="server" />
解决此问题的最简单方法是将其从处理 ID 更改为处理类:
<div class="myDiv" runat="server"></div>
或者,我相信 XHTML 要求 Divs 有结束标签,所以使用
<div runat="server">Some content</div>
关于asp.net - 添加 runat ="server"会改变布局的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/897738/