2008-09-02 108 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文件,然後寫在它的代碼

相關問題