ASP.Net Webforms-页面clientIdMode

时间:2018-06-27 17:01:18

标签: asp.net asp.net-3.5 asp.net-4.5

我正在将旧版ASP.Net网站(Web窗体)从.NET 3.5升级到.NET 4.5。我最近注意到,升级后,一些ASP.Net控件在HTML中从ctl00_Content_dropDown1重命名为ctl00$Content$dropDown1,破坏了很多客户端JavaScript。

如何在升级后阻止此更改?

1 个答案:

答案 0 :(得分:1)

docs.Microsoft.com说,从.NET 3.5迁移到.NET 4.0(或更高版本)会导致这一重大变化,从而改变了元素的id属性的生成方式。

在web.config文件中,更改<pages>元素,向其添加clientIDMode属性,如下所示:

<pages clientIDMode="AutoID" ...

这应该像以前一样继续制作ID。

除了AutoIDMSDN还列出了其他几个有用的选项:

  • AutoID-自动生成带有下划线字符的细分
  • Inherit-从父容器继承模式
  • 可预测-.NET 4.0及更高版本中页面的默认值
  • 静态-ClientID设置为ID属性的值

从.NET 3.5升级到.NET 4.5时,Visual Studio应该将ClientIDMode设置为AutoID,但是当您没有ASP.Net时,我认为它不起作用Web Project(.csproj),而您拥有的只是一个ASP.NET网站。