MVC 4无法解决错误类型&#39; System.Web.Mvc.WebViewPage <tmodel>存在于元素</tmodel>中

时间:2014-12-17 09:49:53

标签: asp.net-mvc-4

将我的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,这就是原因

4 个答案:

答案 0 :(得分:5)

如果您已经尝试过上述解决方案但仍然遇到同样的问题,那么试试这个 - > 转到项目文件夹,然后找到 bin 文件夹 - &gt;从那里删除 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'。