2011-11-16 40 views
1

我不得不改變一些由VS2008中的其他人創建的代碼,我將它轉換爲VS2010版本並且工作得很好,直到我需要更改母版頁文件爲止。在我打開它的那一刻,它給了我很多「在當前上下文中不存在」的錯誤,從後面的代碼中看出,代碼背後的代碼無法找到母版頁文件中聲明的一些控件。VS 2008/2010不同的渲染?

所以,這得到錯誤代碼是這樣的:

<li class='<asp:Literal ID="litLIClass_Test1" runat="server"/>'>stuff</li> 

正如你所看到的,是被內部的ASP文字產生的<li> CSS類,但它似乎ASP字面沒有得到初始化。

但是,它似乎工作之前,我試圖瞭解爲什麼它開始給我錯誤,當我在VS2010中第一次打開頁面代碼。有一種特定的設置可以實現這種嵌套嗎? VS2008/2010中可以有不同的設置嗎?

+0

我檢查了轉換前TFS中文件的先前版本。這是相同的代碼。 – Victor

+0

這不是VS 2008 vs VS 2010.它是ASP.NET 2.0/3.5與ASP.NET 4.0。 – jrummell

回答

0

根據我的經驗,這通常是一個名稱空間不匹配的問題。

有幾件事情嘗試:

  1. 我列出此#1,因爲它是最快的,請確保您的本地 Web服務器也會被關閉,重新啓動Visual Studio,重新編譯(它 有時在工作我的經驗)。確保 您的代碼隱藏文件中的命名空間與頁面中的命名空間匹配(如果它是 WebForms)。我認爲這也包括母版頁,但我不知道 知道,當ASPX和名稱空間後面的代碼關閉時,您可以得到此錯誤。
  2. 如果它是背後的代碼,請確保表單被正確地繼承。
  3. 確保您不會錯過您需要的參考。這是錯誤的常見原因,尤其是升級時。您的代碼文件 可能相同,但您的web.config或默認 引用的內容可能已更改。
  4. 我讀過,這可能是由兩個形式指向相同的 代碼文件引起的,但我從來沒有真正體驗過(我也沒有做 那)。

參考文獻:

(我有更多的參考鏈接後,但我不能,因爲我沒有信譽尚未)。 ;)