关于c#:ASP.NET控件无法在Visual Studio 2008中的代码隐藏中引用

关于c#:ASP.NET控件无法在Visual Studio 2008中的代码隐藏中引用

ASP.NET controls cannot be referenced in code-behind in Visual Studio 2008

好吧,我的视觉工作室坏了。我说这不是过早的,因为这是我第一次看到我的代码混乱的地方。当我将控件添加到页面时,无法在后面的代码中引用所有控件。我可以使用其中的一些,似乎我放在页面上的前几幅,然后停了下来。

我最初认为这可能是控件的类型,因为最初我试图在更新面板中引用中继器。我知道我正确地引用了我的aspx页面中的代码。但是,以防万一这是我的麻烦,我开始从头开始重新创建页面,这次在VS停止识别我的控件之前,又放下了一些控件。

在两次创建页面并陷入困境之后,我想也许它仍然是控件的类型。我创建了一个新页面,并在上面添加了一些标签。没有骰子,当从后面的代码中引用控件时,构建将失败。

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

我已经给微软开了麻烦票。我卸载了所有加载项,重新安装了Visual Studio。

任何想看我的代码的人都会问,但是我使用的是所见即所得的可视化工作室" new aspx page",一点也不花哨。

我怀疑有人遇到过这个问题,但是你呢?

有没有人在使用Microsoft拍摄这些东西时遇到麻烦?有什么方法可以加快这张票而无需付费吗???几天来,我一直在与Microsoft代表谈话,但还没有走运,我已经死在水里了。

乔恩·林贾普(Jon Limjap):我对标题进行了编辑,以使其既清晰又具有描述性,并确保没有人将其视为令人反感。尽管您的问题显然是有效的问题,但" Foo-barred"并不能完全构成正确的问题标题。


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

当Visual Studio尝试重建设计器文件时,它遇到了问题(并向我透露了)。以我为例,VS丢失了对页面上控件之一所需的DLL的引用,因此我必须清除项目中生成的bin文件夹。


尝试清除您的本地VS缓存。找到您的项目并删除文件夹。该文件夹是由VS创建的,出于什么原因我实在不明白。但是我有好几次清除它并重新构建可以解决问题的方法……希望这也是您所需要的。

这里

1
%Temp%\\VWDWebCache

可能在这里

1
%LocalAppData%\\Microsoft\\WebsiteCache

您要引用的控件是否在转发器内部?

如果是这样,则需要使用FindControl方法进行查找。

例如:

1
2
3
4
    <ItemTemplate>
        stest</asp:LinkButton>
    </ItemTemplate>
</asp:Repeater>

您需要执行以下操作才能引用它:

1
LinkButton lb = Repeater1.FindControl("LinkButton1");

就我而言,我正在使用一些旧的网站代码,然后将其转换为VS2008解决方案。我遇到了同样的问题。

对我来说,解决方法是在解决方案资源管理器中右键单击"网站"项目,然后选择"转换为Web应用程序"。这为所有页面创建了designer.cs文件,这些文件以前没有这些文件。


我观察到发生这种情况是由于缺少.designer.cs文件。在我的情况下解决了此问题(基本上是将这些文件从VS 2005 Web项目复制到VS 2010项目):右键单击.aspx文件,然后选择菜单"转换为网站",这将创建.designer.cs文件,并那么它应该工作文件。


您还将找到可以安全删除的.net临时文件:
C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \临时ASP.NET文件


就我而言,没有检测到我添加到现有的新ASP控件。

对我有用的是通过重命名现有控件以破坏构建来强制重新编译,例如:将更改为

当我更正ID并重建时,使用更正的ID和新控件生成了一个新的设计器文件。


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

例:

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

类背后的代码:

1
Partial Public Class myControl

右键单击项目名称,然后选择"清理"。然后,检查您的bin文件夹中是否还有任何dll。如果是这样,请将其删除。而已。只是重建,一切都会正常。


我们无法在应用程序运行时更改代码。为此,请先单击顶部的停止按钮,这将停止您的应用程序。现在在设计模式下单击该按钮,它将代码插入.aspx.cs文件中, 然后在其中编写代码


遇到该问题后,请检查您的aspx文件是否有错误


我曾经发生过几次,今天又因为新的原因再次发生。我通常通过IIS运行项目,但需要在本地运行它进行调试。我通常在IIS的80端口上运行,在调试时在81端口上运行,但是我在使用80的web.config中进行了一些设置,因此我只是在IIS中杀死了该站点,并在项目设置中将该网站切换为80端口。无论出于何种原因,这都弄乱了一切,并造成了OP中描述的问题。我开始一一尝试,包括这里提到的所有建议,但是最终在项目设置中将端口切换回81。


只是为了解决这个问题再加我两分钱。

上面所有对我有用的东西是"清理",然后删除bin文件夹中的所有内容。重建,然后所有控件开始工作。


仅供参考...我也遇到了这个问题,最后我通过删除现有的.designer.vb文件,右键单击该项目并选择"转换为Web应用程序"来解决此问题。然后显示真正的"错误",导致GUI自行废弃。原来,我为其他2个标签使用了相同的名称,但未在错误列表窗口中显示。一旦我重命名了其他两个标签之一,它就可以正常工作并不再给我带来麻烦。


您必须添加

1
runat="server"

页面中的每个元素。


对我而言,删除/重新命名以下位置的文件有效:

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


推荐阅读

    linux代码对齐命令?

    linux代码对齐命令?,系统,地址,标准,信息,对比,名称,代码,命令,文件,工作,lin

    linux命令运行代码?

    linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Lin

    搭建linux命令行代码?

    搭建linux命令行代码?,系统,软件,工作,名字,服务,代码,地址,环境,管理,密码,l

    linux隐藏光标命令?

    linux隐藏光标命令?,系统,工作,地址,设备,信息,命令,时间,软件,发行,终端,Lin

    linux隐藏执行的命令?

    linux隐藏执行的命令?,工作,电脑,系统,地址,标准,信息,管理,命令,目录,软件,

    linux命令隐藏文件?

    linux命令隐藏文件?,系统,地址,情况,位置,电脑,工作,图片,工具,一致,命令,lin

    linux查看命令代码?

    linux查看命令代码?,系统,信息,代码,名称,命令,设备,数字,第一,软件,管理,在L

    linux删除代码命令行?

    linux删除代码命令行?,系统,代码,命令,文件,不了,环境,档案,名称,目录,文件

    linux命令行代码实现?

    linux命令行代码实现?,标准,代码,管理,网络,地址,工作,命令,网上,环境,名称,

    linux隐藏文件命令?

    linux隐藏文件命令?,系统,信息,文件夹,名称,一致,位置,标准,工具,命令,文件,l

    linux打开隐藏命令?

    linux打开隐藏命令?,工作,系统,地址,信息,命令,管理,代码,状态,标准,位置,lin

    linux桌面命令代码?

    linux桌面命令代码?,电脑,系统,密码,环境,代码,基础,地址,服务,网上,通讯,lin

    c代码执行linux命令?

    c代码执行linux命令?,系统,工作,标准,情况,代码,环境,设备,命令,函数,指令,li

    linux进入代码行命令?

    linux进入代码行命令?,系统,代码,设备,终端,环境,信息,第一,命令,窗口,模式,

    linux命令行看代码?

    linux命令行看代码?,代码,基础,系统,命令,数字,工作,情况,进程,程序,终端,在L

    linux命令代码怎么看?

    linux命令代码怎么看?,时间,系统,代码,命令,状态,工具,情况,电脑,实时,基础,l

    pycharm无法输入代码?

    pycharm无法输入代码?,代码,环境,工具,分析,输入法,键盘,性能,计算机,问题,