Tony
Tony

Reputation: 12695

MVC 4 Can't fix the error The type 'System.Web.Mvc.WebViewPage <TModel> exists in the elements

after moved my MVC 4 project from VS 2012 to VS 2013 Community I get the following error (in the LogIn.cshtml page).

CS0433: The type 'System.Web.Mvc.WebViewPage "exists in the elements c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Web.Mvc\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll and c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Web.Mvc\v4.0_3.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll

I deleted all files from C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files, cleaned the solution but the problem remains. How to fix it ?

EDIT

The Test project used the MVC 3, that was the reason

Upvotes: 4

Views: 8584

Answers (4)

BLoB
BLoB

Reputation: 9725

In your root web.config, near the bottom, you will have something like the following:

<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>

For me, I simply changed the 'oldVersion' number to 1.0.0.0-4.0.0.1 so that this application will always use the 'newVersion'.

Upvotes: 0

You could check in your web.config files. Check if the version is the same as you're using as reference.

Application web.config file:

<add assembly="System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

and

<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />

And the Views web.config file:

<add assembly="System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />

In my example, my MVC dll is the version 3.0.1. But Visual Studio built my solution as if it were 3.0.0. So I had to map the references in the web.config files to 3.0.1.

Upvotes: 4

Krishna
Krishna

Reputation: 5644

If you have already tried the above solutions and are still getting the same problem then try this one-> Go to your project folder and in there locate the bin folder --> Remove System.Web.Mvc.dll and System.Web.Mvc.xml from there.

Upvotes: 5

Sai
Sai

Reputation: 96

Check if you are referencing both DLLs to your project.

Your project is reading in two assemblies that might be referenced in your project: System.Web.MVC version 4.0.0.0 and in System.Web.MVC version 3.0.0.0

Upvotes: 2

Related Questions