ASP.NET 4 webforms clientid后缀为`_0`

时间:2010-10-26 11:38:37

标签: webforms asp.net-4.0 clientid

去年我们将所有新功能都移到了ASP.NET MVC。

然而,我们仍然有大量遗留的WebForms页面,其中包含大量JavaScript代码,我们很快就不会有机会升级它们。

最近我们也转向了ASP.NET 4,这似乎打破了这些遗留页面上的JavaScript代码。

客户端ID之前的位置:

ctl001_masterControlName_panelControlName_controlWeWant

现在他们已成为:

ctl001_masterControlName_panelControlName_controlWeWant_0

_0后缀来自何处? <{1}}中只有一个controlWeWant,因此后缀不会添加任何值。

我知道使用WebForms的硬编码客户端ID是个坏主意;我们迁移到ASP.NET MVC的原因之一是WebForms生成的糟糕的HTML。然而,对于这个遗留代码,我们坚持使用它,我宁愿不去改变它(直到有一天我们有空闲时间才能正确完成它。)

为什么ASP.NET 4会添加panelControlName后缀?

我可以将其关闭吗?

还有另一种方法可以避免吗?

1 个答案:

答案 0 :(得分:1)

查看 What is New in ASP.NET 4.0 - ClientID Generation for a Cleaner MarkUp 。它解释了ASP.NET 4.0在id生成方面的一些新功能。