Asp.net 带有$或非字母数字字符的HTML类和ID
我正在查看XHTML doctype上的一些站点代码,从中我看到的框架是ASP.net。HTML中的ID中有一个“$” 例如:Asp.net 带有$或非字母数字字符的HTML类和ID,asp.net,xhtml,w3c-validation,Asp.net,Xhtml,W3c Validation,我正在查看XHTML doctype上的一些站点代码,从中我看到的框架是ASP.net。HTML中的ID中有一个“$” 例如: <img id="$ct100templateContent$SectionPanel1$ctl01$ctl02ctl00_templateContent_SectionPanel1_ctl01_ct999img" src="this.jpg"/> 从W3C语义的角度来看,“$”在ID或类中无效。ID和类在XHTML doctype中只能包含字母数字字
<img id="$ct100templateContent$SectionPanel1$ctl01$ctl02ctl00_templateContent_SectionPanel1_ctl01_ct999img" src="this.jpg"/>
从W3C语义的角度来看,“$”在ID或类中无效。ID和类在XHTML doctype中只能包含字母数字字符
“$”是引用web控件或模板项的ASP.net命名约定吗 $value表示控件嵌入站点/页面的级别。您还可以将ClientIDMode更改为Static以使用自己的ID。是的,ASP.NET在基于分层页面布局生成控件ID时使用“$”符号。ASP.NET在类名中不使用“$”符号。我有点搞不懂您在id中看到美元符号的方式/原因 将Web控件呈现为标记时,ASP.NET会根据Web控件的
id
属性及其在控件层次结构中的位置生成元素的id
和name
属性。简而言之,某些控件(例如模板控件或重复控件)充当命名容器。在确定ID
和name
属性时,此类控件的ID
属性值将作为其内部控件ID
属性值的前缀
例如,考虑下面的控制层次结构:
在这里,母版页(ctl00
)和ContentPlaceHolder(MainContent
)控件是命名容器。Age
TextBox Web控件将有一个呈现的id
的clt00\u MainContent\u Age-即,它自己的服务器端
id属性值,前缀是其命名容器祖先的
id`值
但是请注意,呈现的id
是如何用下划线分隔每个命名容器点的。这是ASP.NET中的默认功能,因此我不明白为什么在id
属性中会看到美元符号。(在制定name
属性时,ASP.NET使用美元符号分隔每个命名容器点,但在制定id
属性值时不应使用美元。)
您使用的ASP.NET版本是什么?你在做什么。。。奇怪的像使用自定义控件和重写基本
控件
类的IdSeparator
属性?如果您使用的是ASP.NET 4,您是否(有意或无意)设置了控件的ClientIDMode
属性?Go figure,MS将覆盖所有标准。我不确定他们使用的是ASP.NET的哪个版本。根据您对ID是如何形成的解释,我认为ASP.NET开发人员在生成前端代码时犯了一个错误。