2009-08-03 71 views
2

我在ascx文件中有控件,但我无法在.cs文件中的智能感知中看到它们。它之前工作的很好。代码隐藏无法引用页面控件

我可以在designer.cs文件中看到控件名称。

我已删除了应用程序数据文件夹中的Asp.net临时文件,但仍无法在应用working.The其他用户控制文件可以coerrectly引用它的页面控件。这里有什么问题 ? 我使用VS2008。

+0

这么多东西可能是错在这里。请发布一些更多的细节。 – 2009-08-03 15:21:40

+0

我遇到与.aspx文件相同的问题。 Inherits值似乎是正确的。 – dsteele 2009-08-04 00:35:26

回答

-2

一个问题,我已经解决了这个问题,我已经卸载并重新安装VS2008,并就解决了。

+10

似乎有点极端。 – Sekhat 2009-08-04 08:20:31

5

看看.ascx页面的顶部行并检查Inherits=的值,并确保它具有适合您的代码隐藏的正确namespace.class。例如,如果您的命名空间是ProjectNamespace,而您的控制类是MyControl那么它应该是ProjectNamespace.MyControl。如果你重命名了ascx文件等,并导致这种类型的问题,这可能会失去同步。

+0

我检查了它,它是正确的,但仍然无法正常工作。 – zer0w1dthspace 2009-08-03 15:38:58

1

我想通了这一点对我的情况:在.aspx文件的页参数中,“的CodeFile”参数是指向文件的名称:“LabEdit.aspx.cs”。它应该指向路径:“〜/ WOPages/LabEdit.aspx.cs”。我知道我没动的CodeFile或页面文件,所以这是可能与VS2008

2

每次我将用户控件从一个项目复制到另一个时,都会发生这种情况。 ascx和代码隐藏之间的连接断开。 该解决方案是乏味的,但它得到解决该问题:

  1. 创建一个新的用户控件。 Visual Studio将正确地将ascx文件连接到ascx.vb文件。

  2. 将原始控件中的ascx和vb代码复制到新控件中。

  3. 删除您的原始控件。

  4. 您现在有一个工作控件,但它有不同的名称。

  5. 如果保留原控件的名称,再重复整个过程和第二控制复制到第三个使用正确的名称是非常重要的。

  6. 写信给微软,并要求他们停止加入我们不需要花俏和修复基本的东西!

相关问题