将我的MVC 4项目从VS 2012移至VS 2013社区后,我收到以下错误(在LogIn.cshtml页面中)。
CS0433:类型'System.Web.Mvc.WebViewPage“存在于元素c:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Web.Mvc \ v4.0_4.0.0.0__31bf3856ad364e35 \ System.Web中.Mvc.dll和c:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Web.Mvc \ v4.0_3.0.0.0__31bf3856ad364e35 \ System.Web.Mvc.dll
我删除了C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
中的所有文件,清理了解决方案,但问题仍然存在。如何解决?
Test项目使用了MVC 3,这就是原因
答案 0 :(得分:5)
如果您已经尝试过上述解决方案但仍然遇到同样的问题,那么试试这个 - > 转到项目文件夹,然后找到 bin 文件夹 - >从那里删除 System.Web.Mvc.dll 和 System.Web.Mvc.xml 。
答案 1 :(得分:3)
您可以签入您的web.config文件。 检查版本是否与您用作参考的版本相同。
应用程序web.config文件:
<add assembly="System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
和
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
和Views web.config文件:
<add assembly="System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
在我的示例中,我的MVC dll是3.0.1版。但Visual Studio将我的解决方案构建为3.0.0。所以我必须将web.config文件中的引用映射到3.0.1。
答案 2 :(得分:2)
检查您是否将两个DLL引用到项目中。
您的项目正在读取可能在项目中引用的两个程序集: System.Web.MVC版本4.0.0.0和System.Web.MVC版本3.0.0.0
答案 3 :(得分:0)
在根目录web.config中,靠近底部的位置,将显示以下内容:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
对我来说,我只是将'oldVersion'编号更改为1.0.0.0-4.0.0.1,以便此应用程序将始终使用'newVersion'。