2012-11-02 49 views
1

從ASP.NET MVC3升級到MVC4以來,我遇到了一個問題。該應用程序有大部分控制器和視圖嵌入到主項目引用的dll中,並且解決方案依賴於標準的VirtualPathProvider,該標準的VirtualPathProvider檢查dll中是否存在請求的視圖,如果是,則返回該視圖。使用VirtualPathProvider的ASP.NET MVC4佈局頁面

升級到MVC4之後,佈局頁面的請求不再通過VirtualPathProvider,導致整個應用程序崩潰。包括部分視圖在內的所有其他視圖都可以正確處理並從程序集中加載。

升級到MVC4後,是否有其他人遇到類似的問題?

回答

0

我會在沒有看到您的錯誤消息的情況下進行猜測。找到項目中的所有web.config文件,並確保引用最新版本的MVC 4.

+0

我已經瀏覽了所有配置文件並更新了所有內容,並更新了每個NuGet的參考。其他的一切都很完美,只是Layout-pages看起來並沒有通過MVC3中的VirtualPathProvider。 –

+0

你是否檢查過你的視圖文件夾下的web.config文件?所有程序集都應該引用相同的版本。你可以嘗試這個作爲一個快速測試:備份你的項目,遞歸刪除所有的web.configs,除了根目錄之外,並確保你使用完全相同的MVC dll(我的意思是來自EXACT位置)。做一個完整的清理並重建你的項目。當心.NET 4.5,它的程序集綁定是神祕的,你可能必須非常明確。如果錯誤仍然存​​在,請將其發佈到此處。 –

+0

除了上述建議之外,請打開編譯後的視圖後生成步驟。它會標記可能導致路由失敗的視圖中的可能錯誤: http://stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc 這只是一個編譯檢查,不是二元構建。 –