帶有 VB.NET 的 MVC5:“BC30451:‘ViewData’ 未聲明。”切換到調試配置時
我有一個目前設置在“發布配置”上的 MVC5 項目,它可以 100% 工作。但是,一旦我將項目配置從 Release 切換到 Debug,那麼一切都會出錯……即使我將其切換回 Release 模式,一切仍然會損壞。我能讓項目再次執行的唯一方法是從備份中恢復。
以下是正在發生的事情。首先,在執行項目時,我收到以下錯誤:
BC30451:未聲明“ViewData”。由於其保護級別,它可能無法訪問。
如果我使用 Visual Studio 2013 打開項目中的任何視圖,我可以看到各種事物都被標記為錯誤,例如 ViewData、Html、Url 等。
在視圖中引用@Html 或@ViewData 時,通常指的是視圖基類(WebViewPage)的.Html 和.ViewData 屬性。但是,如果我開始輸入“@Html”。在任何視圖中,我都可以在自動完成中看到它指的是 System.Web.Webpages.Html 命名空間而不是 WebViewPage.Html 屬性。好像視圖不是從 System.Web.Mvc.WebViewPage 類繼承的。
關於我可以從哪裡開始解決這個問題或為什麼會發生這種情況的任何指導?
編輯: 所以由於沒有人回應,我走了很長一段路。我創建了一個全新的 MVC5 項目,通過 Nuget 添加了所有包,然後簡單地將所有文件從舊項目複製到新項目,現在它可以工作了。
有誰知道這到底是什麼原因造成的?如果項目再次突然決定停止工作,我不想在未來再次經歷所有這些麻煩。
好的,我想我在這裡找到了部分原因。事情是,由於原始程式碼是有效的(它可以正確編譯並且智能感知會拾取它)並且程式碼曾經可以工作,然後突然之間,在編譯後的一天,它就停止工作了。
無論如何,在視圖中,在指定ModelType時,如果不使用全名,則可能會發生此錯誤或最終發生此錯誤。例如,使用:
@ModelType Models.SomeNamespace.SomeClass將導致錯誤(即使項目的根命名空間是“MyProject”),它可以通過簡單地指定完整的命名空間和類名來修復。
@ModelType MyProject.Models.SomeNamespace.SomeClass