我被給了一個用aspx/c#編寫的webproject。當我將它加載到Visual Studio 2010中時,出現了很多錯誤,告訴我代碼隱藏文件中的某些控件在當前上下文中不存在。Codebehind文件無法識別aspx-controls
我檢查了常見的陷阱,如錯誤的代碼隱藏文件名,缺少runat
-attribute,重新啓動VS,重新加載項目,但沒有什麼能解決錯誤。
我還能做些什麼來檢查問題出在哪裏?
我被給了一個用aspx/c#編寫的webproject。當我將它加載到Visual Studio 2010中時,出現了很多錯誤,告訴我代碼隱藏文件中的某些控件在當前上下文中不存在。Codebehind文件無法識別aspx-controls
我檢查了常見的陷阱,如錯誤的代碼隱藏文件名,缺少runat
-attribute,重新啓動VS,重新加載項目,但沒有什麼能解決錯誤。
我還能做些什麼來檢查問題出在哪裏?
CUDOS到@ 03Usr以下鏈接帶來了答案:
ASP.NET controls cannot be referenced in code-behind in Visual Studio 2008
刪除所有設計師文件,並轉換項目ALS Web應用程序所帶來的設計文件恢復,有效地使控件再次可引用。
您也可以排除然後重新包含這些文件,這有時會重新生成設計器文件。 –
繼承標記文件的類和文件後面的代碼應匹配,並確保這些控件不是第三方,可能需要引用它們的dll或其他東西。如果這些控件是用戶控件(ascx)控件,請確保他們在頂部的寄存器行中使用正確的標記名。
繼承類/名稱空間是正確的。它們都是簡單的'
我的意思是,如果您有任何用戶控制註冊聲明(如標記文件頂部)<%@ Register TagPrefix =「xxx」TagName =「tagname」Src =「Controls/usercontrolnamefile.ascx」%> – Pirate
嘗試將代碼behinde更改爲CodeFile =「where code locate」,那麼它可能會工作。
這是一個非常惱人的黑客,但是如果您從aspx頁面中刪除控件然後保存頁面,那麼將控件粘貼回頁面並再次保存代碼,然後似乎認出控件。每當我更改像ID這樣的屬性時,我都會遇到這個問題。
你嘗試過乾淨+構建? – Heki
我甚至不能建立它,因爲這裏的錯誤 –
類似的問題和可能的解決方案:http://stackoverflow.com/questions/38670/asp-net-controls-cannot-be-referenced-in-code-behind- in-visual-studio-2008 – 03Usr