在将asp.net 2.0网站部署到Framework 4.0时,ClientID发生了变化

时间:2010-10-13 09:06:27

标签: asp.net clientid

我有一个托管在GoDaddy上的网站,他们有4.0版运行时。 问题是服务器控件的客户端ID生成为“contentPlaceHolder1_drpBanks”,它早于(当网站位于其他服务器上时)生成为“ctl00_contentPlaceHolder1_drpBanks”。

我需要知道的是有一种解决方法,以便我不必对代码进行任何更改。

类似于web.config文件中的设置。

2 个答案:

答案 0 :(得分:2)

将来使用<%=Control.ClientID%>,每次都会成功解决 - 无需更改代码。

答案 1 :(得分:1)

ASP.NET 4.0中的控件具有ClientIDMode属性。如果将其设置为AutoID,ASP.NET应该像在ASP.NET 2.0中一样生成客户端ID。这是一个article,解释了不同的客户端ID模式。

除了在控制级别设置ClientIDMode之外,您还可以在页面或应用程序级别设置它:

<%@ Page Language="C#" ClientIDMode ="AutoID" ... %>

<system.web>
    <pages clientIDMode="AutoID" />
</system.web>

但我同意leppie的观点,即依赖生成的客户ID是危险的。