gpt4 book ai didi

asp.net - "object reference not set"在 Visual Studio 2010 中的 asp.net default.aspx 文件的设计 View 中显示

转载 作者:行者123 更新时间:2023-12-04 21:46:23 24 4
gpt4 key购买 nike

我在这里找到了另一个有类似问题的线程:
Visual studio 2010: Can't show design view
但就我而言,我没有使用自定义控件。

在 Win7 32 位机器上,我使用 Visual Studion 2010 创建一个使用 Visual Basic 代码的 asp.net Web 应用程序。我已将标准 Web 控件添加到 default.aspx 表单。

昨天我保存了项目,在 Debug模式下运行了一会儿,然后关闭了 Visual Studio(自上次保存以来没有进行任何更改)。

今天,当我打开解决方案并查看 default.aspx 文件的设计 View 时,所有应该显示的控件都说
“创建控件时出错 - 控件名称。
你调用的对象是空的”

我没有对解决方案进行任何更改。

错误列表中不显示错误。 Web 应用程序构建没有错误。该应用程序运行没有错误(在 Debug模式下)并在网页上正确显示控件。

我建议 default.aspx.designer.vb 文件可能已过时。建议是删除该文件,创建一个同名的空文件,打开解决方案,然后重新保存 default.aspx 文件以重新生成设计器文件。我这样做了,它没有任何影响。

我没有在我的系统上安装任何更新。

我用作此应用程序基础的其他 VS 网络应用程序解决方案仍然可以正常运行。他们没有在他们的设计 View 中显示这个问题。

所有代码都本地存储在与 Visual Studio 相同的计算机上。未使用版本控制。

这实际上是我第二次在这个项目中遇到这个问题。它发生在两天前。那时我开始了一个新的解决方案文件,从头开始重新创建了 default.aspx(和代码隐藏),然后复制了我的其他代码(类、模块和文本文件)。这就是我现在正在使用的解决方案文件,正如我所提到的,它昨天运行良好。在这两种情况下,当我当天关闭项目时,我碰巧在表单上有相同的控件集。我没有尝试向表单添加另一个控件。

最佳答案

这与 OnInit 有关。方法。

此问题的一种解决方法是检查 base.OnInit() 之后我们是否处于设计模式。称呼。

protected override void OnInit( EventArgs e)
{
base.OnInit(e);
if(!this.DesignMode)
{
// place code here for dynamic control creation
TextBox txtUserName = new TextBox();
txtUserName.ID= "UserID" ;
usersPlaceholder.Controls.Add(txtUserName);
}
}

视觉网页开发团队也意识到了这个问题,他们说:
this is a bug in VS 2010 that we’re now calling the OnInit() method at the 
design time; we are considering a fix for this in a future release of
VisualStudio.

在他们的博客上查看此问题的完整详细信息 here

关于asp.net - "object reference not set"在 Visual Studio 2010 中的 asp.net default.aspx 文件的设计 View 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com