0

我刚刚切换到VS 2010,并升级了以前的项目。我得到的设计方式在页面上出现以下错误2个控制:设计模式下的ASP.net错误

Error Creating Control - ObjectName 
Object reference not set to an instance of an object. 

其中之一是一个简单的标签,而另一种是AJAX更新面板。其他页面看起来很好。当我构建并测试应用程序时,页面在浏览器中呈现良好并且功能正常 - 标签按预期运行,并且更新面板中的内容按预期工作。

任何想法,为什么我得到这个错误?我尝试了一些谷歌的结果无济于事。这很好,可以避免这种情况发生。

谢谢!

+0

这些服务器控件是? – MyItchyChin 2010-05-04 17:32:42

+0

我这么认为,我对它们设置了runat =“server”。 – stringo0 2010-05-04 18:10:09

回答

1

当Visual Studio中的设计器实例化服务器控件或组合控件的实例时,可能会发生此错误。它将尝试读取可能映射到控件中尚未初始化的对象的可读属性。如果您有自定义服务器控件,则需要覆盖基本控制调用的CreateChildControls方法,并在其中初始化属性所依赖的任何对象,然后在属性中调用基础EnsureChildControls方法。

这将确保您的控件中的所有依赖对象在被引用前被初始化。

+1

嗯 - 任何想法,为什么我在这个标签上得到它: 我使用内置工具 - Ajax更新面板,等等,并且当我在设计器中查看时,页面上的一个自定义控件在另一个页面上显示得很好。 这有点令人困惑,因为我在VS 2008中查看过另一台机器,它显示正常。 我认为这可能是一些微不足道的事情,我可能会忽略 - 我没有从显示正常时更改页面。也许VS 2010有更严格的标准? – stringo0 2010-05-04 18:10:47