找到了具有相同ID“xxx”的多个控件

时间:2010-04-26 05:51:44

标签: .net asp.net

我有一个从VS2003转换到vs2005的企业应用程序。

转换后的应用程序,我在一个页面中编辑并保存,我收到此错误。

System.Web.HttpException:找到了具有相同ID“hidWIPID0”的多个控件。 FindControl要求控件具有唯一ID。

但是在vs2003版本的代码中同样的工作没有任何错误。

它是一个巨大的应用程序,包含动态母版页和用户控件等。所以我不能在这里粘贴确切的代码。

但错误的起源是母版页内容控制。

例如 页面代码 MasterPageStrategy:Content id =“pnlMain”

错误

找到了具有相同ID“hidWIPID0”的多个控件

查看来源

母版:pnlMain:_ctl2:hidWIPID0

我微软支持有一篇文章解释同一个问题。但它适用于1.1版本。 我已经在2.0版本中转换了代码,错误出现在转换代码中。

http://support.microsoft.com/kb/834608

有人请研究这个问题并提供解决方案,因为它非常紧急。

由于 SNA

1 个答案:

答案 0 :(得分:2)

问题正是异常告诉你的。在您的母版页/页面树中,有几个具有相同ID的控件。在.NET 2.0和其他版本中,这是不允许的。

我建议搜索用于构建您请求的页面的主页和页面,并重命名具有相同ID的控件之一。但是,由于您拥有一个包含多个动态和继承的主页的庞大应用程序,我认为您会多次遇到同样的问题。

也许你应该切换到4.0版本的.NET框架?在4.0中,您可以指定'clientIDMode'。更多相关信息:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx

修改 在考虑它时,它没有意义。当您有多个masterpages和contentplaceholder时,控件将获得唯一的前缀。在我看来,你在一个页面中有一种导致这个问题的转发器。