无法在Visual Studio 2008中的代码隐藏中引用ASP.NET控件

时间:2020-03-05 18:46:12  来源:igfitidea点击:

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

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

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

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

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

任何想看我的代码的人都会问,但是我使用的是所见即所得的可视化工作室" new aspx page",这没什么花哨的地方。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

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

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

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

解决方案

回答

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

如果是这样,则需要使用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");

回答

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

这里

%Temp%\VWDWebCache

可能在这里

%LocalAppData%\Microsoft\WebsiteCache

回答

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

回答

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

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

回答

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

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