去年我们将所有新功能都移到了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
后缀?
我可以将其关闭吗?
还有另一种方法可以避免吗?
答案 0 :(得分:1)
查看 What is New in ASP.NET 4.0 - ClientID Generation for a Cleaner MarkUp 。它解释了ASP.NET 4.0在id生成方面的一些新功能。