See the question and my original answer on StackOverflow

You need to make sure you reference MVC 3.0 in your project. Since this assembly has a strong name, you should be getting it or fail.

For this, in Visual Studio, check Solution Explorer, [Project], References, click on System.Web.Mvc, and check the 'Version' property in the property grid. It should be 3.x.

If you have that, than check the web.config or the machine.config and make sure there is no forced redirection on MVC 2.x.

For this, in all Web.config files in the project, globally and replace the MVC version (replace this System.Web.Mvc, Version=2.0.0.0 by this System.Web.Mvc, Version=3.0.0.0).

Eventually, you can also force redirection from 2 to 3 using this snippet in the root web.config:

...
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
...