首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET 2.5为ctl00添加前缀,ASP.NET 4不为ctl00添加前缀

ASP.NET 2.5为ctl00添加前缀,ASP.NET 4不为ctl00添加前缀
EN

Stack Overflow用户
提问于 2010-12-14 17:38:06
回答 4查看 11.7K关注 0票数 16

有人知道为什么ASP4在ASP.NET控件上去掉了ctl00前缀吗?

有没有我错过的场景?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-14 17:44:05

在HTML4.0中,他们引入了对更清晰的ASP.NET语法的支持。你可以在at Scott Gu's blog上读到它。如果您希望客户端ID采用经典模型,则可以调整web.config:

代码语言:javascript
复制
<configuration>
    <system.web>
        <pages controlRenderingCompatibilityVersion="3.5" />

这将使升级应用程序变得更容易。您可以使用Control.ClientIDMode属性更改每个控件(和每个页面)的此设置,该属性也可以在web配置中进行设置:

代码语言:javascript
复制
<configuration>
    <system.web>
        <pages clientIDMode="AutoID|Predictable|Static|Inherit" />

AutoID使用经典的ASP.NET 2.0模型呈现控件。

票数 30
EN

Stack Overflow用户

发布于 2010-12-14 17:44:25

据我所知,应该由ASP.NET来决定使用哪个前缀。引用具有硬编码的id值的控件是一种不好的做法。

您应该使用ClientId属性,它将始终为您生成正确的Id:

代码语言:javascript
复制
<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>

在上面的示例中,它计算文本框的正确ID并将其放入标签属性中。通过这种方式,您将不再担心保持控件的id不变。

票数 1
EN

Stack Overflow用户

发布于 2010-12-14 17:40:00

不是设置,而是MS决定简化容器内控件的ID转换到客户端的方式。

以下是Scott Guthrie的blog post,解释了这些变化。其背后的原因是:

CSS干净、基于标准、

友好的标记

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4437717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档