Vb.net .NET 4.5升级后FindControl不再工作

Vb.net .NET 4.5升级后FindControl不再工作,vb.net,master-pages,.net-4.5,findcontrol,Vb.net,Master Pages,.net 4.5,Findcontrol,在升级到.NET 4.5之前,该代码在findControl中正常工作,但这是因为它们是使用前置占位符位置添加的。我们现在收到 Object reference not set to the instance of an object. 在这样的代码上 Dim toDate As String = NullConvert.ToString(CType(Page.FindControl("ctl00$ContentPlaceHolder1$Transactions1$txtToDate"),

在升级到.NET 4.5之前,该代码在findControl中正常工作,但这是因为它们是使用前置占位符位置添加的。我们现在收到

Object reference not set to the instance of an object. 
在这样的代码上

Dim toDate As String = NullConvert.ToString(CType(Page.FindControl("ctl00$ContentPlaceHolder1$Transactions1$txtToDate"), TextBox).Text)
这在过去非常有效,但现在已经不起作用了。我已经尝试消除对just的pre-pend contentplaceholder引用

Dim toDate As String = NullConvert.ToString(CType(Page.FindControl("txtToDate"), TextBox).Text)
但这会收到同样的错误。我认为问题是因为代码隐藏在包含的HeaderControl母版页中,而不是在实际调用按钮点击事件的页面中。我是否需要引用子页面来查找此问题,还是有更好的解决方案?如果你不知道的话,我不是最先进的.NET程序员。
谢谢

页面上的文本框在哪里?您应该使用页面上的命名容器控件,该控件可以作为
FindControl
的root用户直接访问。什么是
Transactions1
?它只是包含在一个没有ID的文件中,我可以编辑div并给它一个ID,但我尝试过,以前它对我不起作用,因为母版页当时在自己内部寻找div ID,但它不在那里,什么是
Transactions1
?我的错误,那是容器的ID,我正在查看的页面是.aspx页面中包含的.ascx页面,我将尝试使用容器控件进行引用。这似乎不起作用,语法是否只是FindControl(“Transactions1$txtToDate”)?还是我引用的不正确?对不起,瘸子