有人知道为什么ASP.NET 4在ASP控件中取消了
ctl00
前缀吗?我有没有忽略某个设置?ctl00
前缀吗?我有没有忽略某个设置?<configuration>
<system.web>
<pages controlRenderingCompatibilityVersion="3.5" />
这将使您更轻松地升级应用程序。您可以使用Control.ClientIDMode
属性通过控件(以及页面)进行更改,并且此属性也可以在Web配置中设置:
<configuration>
<system.web>
<pages clientIDMode="AutoID|Predictable|Static|Inherit" />
AutoID
使用经典的 ASP.NET 2.0 模型呈现控件。
据我所记,ASP.NET决定使用哪个前缀。 使用硬编码的ID值引用控件是一种不好的做法。
您应该使用ClientId属性,它将始终为您生成正确的ID:
<td class="tmarg10" style="width: 150px">
<label for="<%=txtName.ClientID %>">
Name of the mall group :</label>
</td>
<td class="tmarg10">
<asp:TextBox ID="txtName" runat="server" Columns="90" /> <br />
</td>
如果您只想将“ct100”前缀添加到控件的ID中,请在WebPage中添加Master页面。但是,如上所述,请尽量避免在源代码中使用硬编码的控件ID,并阅读Metthew的评论以生成自定义ID。