添加runat ="server"会更改布局的行为

Maf*_*fti 6 html css asp.net layout

我有一个页面包含一些控件,用户控件等.

当我改变一个div从平原<div id="foo">到一个<div id="foo" runat="server"> 布局完整的变化.

为什么这样,我怎么能阻止它?

我正在使用2.0 .NET框架

是因为.NET改变了我的身份,这显然是我不想要的?

Tri*_*ith 13

如果您在CSS中定位div控件的ID,然后在服务器上运行控件,您将发现它不再应用该样式.

这是因为ASP.NET有一个内置机制(INamingContainer)来确保比你没有多个名为相同的控件.它通过添加容器前缀来实现此目的,因此您最终得到:

<div id="ctl00_ctl00_myDivName" runat="server" />
Run Code Online (Sandbox Code Playgroud)

解决这个问题最简单的方法是将其从处理ID转变为处理类:

<div class="myDiv" runat="server"></div>
Run Code Online (Sandbox Code Playgroud)

或者,我认为XHTML要求Div具有结束标记以便使用

<div runat="server">Some content</div>
Run Code Online (Sandbox Code Playgroud)