在表单上删除控件时,不会刷新设计器页面

时间:2009-02-01 11:48:52

标签: .net asp.net webforms code-behind

(是:ASP.Net代码隐藏在网页上找不到控件)

我正在使用VS 2008。

我不知道我需要翻转什么秘密开关,或者我不小心绊倒了什么旅行电线,但我在项目中创建的最后一种形式是非常严重的行为不端:代码隐藏显然无法找到任何控件我在表单上设置了。代码隐藏文件存在,但它会对表单上声明的控件的任何引用生成编译错误。

最明显的线索是,在表单的标记中,第一行是:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="UserSignature.aspx.vb"
  Inherits="EEI_App.UserSignature" %>

并且Intellisense强调了整个第一行,给了我一些愚蠢的“无法加载文件或程序集”的消息,它找不到一个完全不相关的DLL,它在我的app文件夹中明显可见,带有引用正确设置。

起初,Intellisense只强调了“CodeBehind”设置,并说“未找到File UserSignature.aspx.vb”。 - 然后由于某种原因,它也开始了关于DLL的其他消息。

我项目中的其他每个表单都在编译和工作正常,此表单与任何其他表单之间没有明显的差异。

我试过打开和关闭Visual Studio;我尝试重新启动 - 没有任何区别。我添加到项目中的每个新表单都无法与自己的代码隐藏进行通信 - 从创建新文件的那一刻起,标记就会发现“找不到文件'NewFile.aspx.vb'”错误!

有什么想法吗?

由于


我想我正在接近这个问题。 @MatthewMartin,到目前为止你肯定是最温暖的。

当我将控件放到窗体上时,似乎没有刷新form.aspx.designer.vb。我仍然不知道为什么会这样,但至少我们变暖了!


好的,这肯定是现在的问题,我已经重新命名了这个问题以反映这一点:根本问题是当我将控件放到表单上时,我的form.aspx.designer.vb表单没有被刷新。 任何想法至少是一种解决方法 - 如何强制设计师刷新?

谢谢!

6 个答案:

答案 0 :(得分:2)

您可以通过删除控件的文本并立即将其重新粘贴回原位来强制重新生成aspx.vb.designer页面。

还要检查后面的代码是否有一个UserSignature类和一个EDI_App命名空间。此外,根据您是否使用Web应用程序/ Web项目,默认命名空间可能不同。您可以通过创建一个新文件并查看后面代码中的page指令和类名声明之间的默认模式来验证。

最后,如果这是一个已转换的1.1应用程序,或者一个2.0应用程序,后面的代码没有说明

  

部分课

,然后您将负责声明所有控件引用。

答案 1 :(得分:1)

你重命名了吗?更改了基础/项目命名空间?特别要看EEI_App.UserSignature - 是正确的名字吗?

为简单起见,请考虑重新创建页面,复制标记等。

答案 2 :(得分:1)

试试这个:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="UserSignature.aspx.vb" Inherits="EEI_App.UserSignature" %>

答案 3 :(得分:1)

你是否有可能丢失了对System.Web(或其他重要的dll,也许你提到的那个dll)的引用? 当我尝试将页面或用户控件加载到dll解决方案时,我通常会遇到类似的问题。事实上,两次我们不得不将我们收到的文件加载到一个新项目中,这就解决了它。

答案 4 :(得分:1)

好的,我找到了自己的答案:

将所有工作代码提交给源代码控制,吹走开发树,获取最新版本。

突然间一切都恢复了。它还解决了my other problem of today

对于那些可以通过吹掉我的开发树并重新开始干净而可以解决我翻转的秘密开关的人,我会给予肯定答案。:)

答案 5 :(得分:1)

周五我遇到了同样的问题。事实证明,在某些情况下,VS2008不够智能(使用VSS作为源代码控制 - 我知道,但它是客户端所拥有的)同时检查aspx,aspx.vb和designer.vb。在我的情况下,我得到各种奇怪的行为,当然Visual Studio,试图“有帮助”无法检查designer.vb。

解决方法是重新检查页面,然后在页面上删除控件并保存(或删除控件 - 任何会导致designer.vb更新的操作。)