Asp.net-Mvc-2
命名空間“System.Web”中不存在類型或命名空間名稱“Mvc”
將 Hybrid ASP.NET MVC1 應用程序轉換為 MVC2 後,當我嘗試執行應用程序時出現以下錯誤:
命名空間“System.Web”中不存在類型或命名空間名稱“Mvc”(您是否缺少程序集引用?)
web.config 文件中的罪魁禍首是 System.Web.Mvc:
<namespaces> <add namespace="System.Web.Mvc"/> <add namespace="System.Web.Mvc.Ajax"/> <add namespace="System.Web.Mvc.Html"/>到目前為止,我的調查似乎使我相信 System.Web.Mvc 的第 2 版沒有安裝或沒有被拾取。
我已經嘗試創建一個基於 MVC 2 的文件 > 新項目,這就是 MVC 的新 (v2) 版本。我還轉換了一些其他項目(不是混合項目),並且它們已經毫無問題地轉換為 MVC2。
我還解除安裝了 MVC1 以嘗試從 GAC 中刪除對它的引用。然而,這些都沒有奏效。
有任何想法嗎?
確保您的 Web.config 中有綁定重定向:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Web.Mvc" /> </dependentAssembly> </assemblyBinding> </runtime>即使機器上有 MVC 1,這也會強制 MVC 2。
另外:MVC 1 確實有一個
System.Web.Mvc命名空間,所以請確保你也有:<assemblies> <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>