了解 $asp.net 和 _(下划线)差异的客户端 ID 生成

本文关键字:客户端 生成 ID 下划线 asp net 了解 | 更新日期: 2023-09-27 18:32:19

正在从事生产支持 ASP.Net 项目,项目现在从2.0(.NET Framework)升级到4.5。问题是,这个项目在javascript和csharp文件中都包含了很多硬编码来查找 asp.net 控制

例如。 ctl00$MainContent$txtName or ctl00_MainContent_txtName

我只是很困惑,为什么它们被使用 $(cs 文件)和 _(设计器中的 JavaScript)用于同一个控件 asp.net 并且它正在工作。

当我们需要使用 $ 和 _(下划线)在渲染页面中获取元素时,请帮助我。在处理此项目时证明这一点对我来说很有用。

了解 $asp.net 和 _(下划线)差异的客户端 ID 生成

我认为您应该设置 asp.net 控件的 Id 属性,此外,每个控件都有一个名为 ClientIDMode 的属性,并且有一组值要在那里使用,我建议您使用 ClientIDMode=Static,像这样,您的所有控件都将使用 Id 呈现,您只需设置它们即可拥有所有这些ctl00_MainContent_txtName的东西。您还可以为所有 Web 窗体设置此 ClientIDMode,以便为每个控件执行此操作。

以下是Microsoft文档:MSDN 文档

如果你想

从javascript访问服务器控件而不是使用全名,你可以这样做:

var a = document.getElementById("<%= YourControlID.ClientID %>");

这将自行生成相关的id,您不必为$ 和 _ 而烦恼