我有一个托管在 GoDaddy 上的网站,它们有 4.0 版运行时。问题是服务器控件的客户端 ID 生成为“contentPlaceHolder1_drpBanks”,而之前(当网站位于其他服务器上时)生成为“ctl00_contentPlaceHolder1_drpBanks”。
我需要知道的是有办法解决这个问题,这样我就不必对代码进行任何更改。
就像 web.config 文件中的设置之类的。
在将来的使用<%=Control.ClientID%>
中,每次都会成功解决 - 无需更改代码。
ASP.NET 4.0 中的控件有一个ClientIDMode
属性。如果将此设置为AutoID
,则 ASP.NET 应该以与 ASP.NET 2.0 中相同的方式生成客户端 ID。这是一篇解释不同客户端 ID 模式的文章。
除了ClientIDMode
在控制级别设置外,您还可以在页面或应用程序级别进行设置:
<%@ Page Language="C#" ClientIDMode ="AutoID" ... %>
或者
<system.web>
<pages clientIDMode="AutoID" />
</system.web>
但我同意 leppie 的评论,即依赖生成的客户端 ID 是危险的。