codebehind无法引用页面控件

时间:2009-08-03 15:16:26

标签: asp.net visual-studio-2008 reference code-behind

我在ascx文件中有控件,但我无法在.cs文件中的intellisense中看到它们。之前工作得很好。

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

我已经删除了AppData文件夹中的Asp.net临时文件,但仍然无法正常工作。应用程序中的其他用户控件文件可以直接引用它的页面控件。这里有什么问题 ? 我使用VS2008。

4 个答案:

答案 0 :(得分:5)

查看.ascx页面的顶行并查看Inherits=的值,并确保它具有适合您的代码隐藏的正确namespace.class。例如,如果您的命名空间为ProjectNamespace且您的控件类为MyControl,则它应为ProjectNamespace.MyControl。如果您重命名ascx文件等,这可能会失去同步并导致此类问题。

答案 1 :(得分:2)

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

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

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

  3. 删除原始控件。

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

  5. 如果保留原始控件的名称很重要,请重复整个过程并将第二个控件复制到第三个控件,并使用正确的名称。

  6. 写信给微软,要求他们停止添加我们不需要的铃声和口哨,并修复基本内容!

答案 2 :(得分:1)

我只是想出了我的情况:在.aspx文件的Page参数中,'Codefile'参数指向文件名:'LabEdit.aspx.cs'。应该指向路径:“〜/ WOPages / LabEdit.aspx.cs”。我知道我没有移动代码文件或页面文件,所以这可能是VS2008的问题

答案 3 :(得分:-2)

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