当我在ASP.NET 4.5中使用HTML server control
创建ID
并使用CSS
来设置ID
样式时,它会失败。当我检查ASPX
页面的来源时,它会显示ASP.NET
已更改我的控件ID
。在这种情况下......
<div id="PasswordStatus" class="well well-sm" runat="server">
Current
</div>
... ...变为
<div id="article_PasswordStatus" class="well well-sm">
Current
</div>
我是否可靠(并考虑到最佳做法)只为CSS
创建#article_PasswordStatus
样式?或者我应该为它创建一次性CSS
类,类似于......
<div id="PasswordStatus" class="well well-sm password-status">
Current
</div>
最好,我还能以某种方式使用我指定的原始ID吗?
注意:我不想要将其转换为Web服务器控件。
答案 0 :(得分:2)
假设.net 4及更高版本,您可以使用ClientIDMode
。您的HTML就像这样
<div id="PasswordStatus" class="well well-sm" runat="server" ClientIDMode="Static">
Current
</div>
使用Static
时,ClientID值设置为ID属性的值。如果控件是命名容器,则该控件将用作其包含的任何控件的命名容器层次结构的顶部。
答案 1 :(得分:1)
添加begin
选项以确保您的客户端ID不会更改。
可以找到信息here。
ClientIDMode="Static"
此选项强制控件的ClientID直接使用其ID值。根本没有应用命名容器命名,最终会得到干净的客户端ID
答案 2 :(得分:0)
使用css样式的类而不是ID通常是最佳实践。你可以避免这样的问题,重用你的css等等,这将是我选择的路径。
asp.net(webforms)中的ID可以通过各种方式进行修改,我个人也不会依赖它。