2008-09-02 107 views
31

好吧,因此,我的视觉工作室已损坏。我说这不是过早,因为这是我第一次看到我的代码搞乱了。当我添加控件到页面时,我无法在后面的代码中引用它们。其中一些我可以,看起来我前几个页面上的工作,然后它就停止。无法在Visual Studio 2008中的代码隐藏中引用ASP.NET控件

我首先想到它可能是控制的类型,因为最初我试图引用更新面板中的中继器。我知道我正确地引用了我的aspx页面后面的代码。但为防万一,这是我的一部分,我开始从头开始重新创建页面,这次在VS停止识别我的控件之前,还有更多的控件下来了。

在创建我的页面两次并卡住后,我想也许它仍然是控件的类型。我创建了一个新页面,并在它上面添加了一些标签。从后面的代码引用控件时,没有骰子,编译失败。

在一个可能无关的注释中,当我切换到可怕的“设计”模式的ASPX页面VS 2008出错并重新启动时。

我已经向微软发了一张麻烦票。我卸载了所有加载项,我重新安装了visual studio。

任何想看我的代码的人都会问,但我使用的是所见即所得的视觉工作室“新的aspx页面”没什么特别。

我怀疑有人碰到过这个,但是有没有?

有没有人有成功的问题与微软拍摄这些东西?任何方式来加快这张票不付钱?我一直在和一位来自微软的代表谈话,那段日子没有运气,我死在水里。


乔恩Limjap:我编辑了标题既要明确和描述确保没有人认为它是进攻。 “Foo-barred”并不完全构成正确的问题标题,尽管你的问题显然是有效的。

回答

15

尝试清除您的本地缓存VS。找到你的项目并删除该文件夹。该文件夹是由VS创建的,因为我真诚不明白的原因。但我已经有好几次清理它并重新构建可以修复事物......希望这也是你所需要的。

这里

%Temp%\VWDWebCache 

,并可能在这里

%LocalAppData%\Microsoft\WebsiteCache 
+0

你知道这个缓存在Vista中的位置吗? – 2009-02-06 14:56:05

+0

抱歉,我没有。我安装了Vista一次,然后回到XP。尝试做一个文件夹搜索VWDWebCache或WebsiteCache,看看你是否能找到它。如果是这样,请添加其他评论或答案。 – 2009-02-07 18:35:27

+4

不适合我:/ – SearchForKnowledge 2014-08-01 19:38:49

11

您试图在中继器内部引用的控件是什么?

如果是这样,那么你需要使用FindControl方法来查找它们。

例如为:

<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
     <asp:LinkButton ID="LinkButton1" runat="server">stest</asp:LinkButton> 
    </ItemTemplate> 
</asp:Repeater> 

你需要做的这个引用它:

LinkButton lb = Repeater1.FindControl("LinkButton1"); 
+0

<3谢谢,我一直在尝试转换为Web应用程序和各种东西。 – 2015-07-09 15:22:04

3

,你还会发现。net临时文件这里是可安全删除的: C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files

32

上述修复程序(删除临时文件)对我无效。我必须删除PageName.aspx.designer.cs文件,然后右键单击我的页面,然后从上下文菜单中选择“转换为Web应用程序”。

在Visual Studio中试图重建设计文件,它遇到了(并透露给我)的问题的根源。在我的情况下,VS已经失去了对我的页面上的其中一个控件所需的DLL的引用,所以我必须清理项目中生成的bin文件夹。

+0

+1。每当我遇到这样的问题时,总是归结为自动生成的设计器文件中的问题。执行这些步骤会使错误显示。 – NotMe 2010-03-05 16:29:31

7

在我的情况,我与一些老网站的代码,我转换为VS2008的解决方案工作。我遇到了同样的问题。

对我来说,修复是右键单击Solution Explorer中的网站项目,并选择转换为Web应用程序。这为所有页面创建了designer.cs文件,这些文件之前还没有这些文件。

2

在我的情况下新的ASP控制我添加到现有的没有被检测到。

什么工作对我来说是通过重命名现有的控制,以打破建立如强制进行重新编译:改变<asp:TextBox ID="txtTitle" runat="server" /><asp:TextBox ID="txtTitle2" runat="server" />

当我纠正了ID,并重建了一个新的设计文件与该修正的ID和新生成控制。

0

对于我来说,删除/在以下位置重命名文件的工作:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\myvirtualwebsite\e331e0a9 
3

我看到这种情况发生,因为缺少了.Designer.cs文件。在我的情况下解决了这个问题(基本上我将这些文件从VS 2005 web项目复制到VS 2010项目中):右键单击.aspx文件并选择菜单“转换为网站”,这将创建.designer.cs文件和那么它应该工作文件。

0

检查出错误,你的aspx文件,一旦我面对这个问题

0

我有这种事发生了几次,今天又发生了新的理由。我通常通过IIS运行我的项目,但需要在本地运行以进行调试。我通常在IIS中运行80端口,在调试中运行81端口,但是我在web.config中使用了80个设置,因此我只是在IIS中杀死了该站点,并在项目设置中将网站切换到了80端口。无论出于何种原因,这一切都搞砸了,造成了OP中描述的问题。我开始逐一尝试一些东西,包括这里提到的所有建议,但是在项目设置中将端口切换回到81是最终工作的结果。

0

右键单击项目名称并选择“清理”。然后,检查你的bin文件夹,如果它有任何剩余的DLL。如果是这样,请删除它。而已。只需重建,每件事情都可以正常工作。

0

只是为了增加我的两美分这个问题。

从上述所有这工作对我来说唯一的办法就是“清洁”,然后删除任何东西留在bin文件夹中。然后重建和所有的控制开始工作。

0

仅供参考......我太有这个问题,我结束了删除该项目现有.designer.vb文件,右键单击并选择转换为Web应用程序修复它。然后它显示了真正的“错误”,导致GUI自己陷入沉重。事实证明,我已经为其他两个标签使用了相同的名称,但没有显示在错误列表窗口中。一旦我将其他两个标签中的一个重新命名,并且停止给我带来麻烦。

0

如果源页面上的Inherits属性与后面的代码中的类名称不匹配,也会发生这种情况。一般来说,这可能只会发生在复制/粘贴.ascx/.aspx文件并忘记更新它时。

例子:

<%@ Control AutoEventWireup="false" CodeBehind="myControl.ascx.vb" Inherits="myProject.myWrongControl" %> 

的背后类的代码:

Partial Public Class myControl 
0

您必须添加

runat="server" 

每个元素在你的页面。

1

当应用程序正在运行时,我们无法更改代码。要这样做,首先单击顶部的停止按钮,这将停止您的应用程序。现在,单击设计模式中的按钮,它会将代码插入.aspx .cs文件,然后写在它的代码

相关问题