ASP.Net 网络表单 - 页面 clientIdMode

ASP.Net Webforms - pages clientIdMode

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

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

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

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

<pages clientIDMode="AutoID" ...

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

除了 AutoID 之外,MSDN 列出了其他几个有用的选项:

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

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