Upgrade from MVC 4 to 5
This document describes the steps needed to upgrade an existing Optimizely solution from ASP.NET MVC 4 to MVC 5.
Follow the steps below to upgrade your Optimizely Content Management System (CMS 8) project to the latest MVC version.
- Upgrade your site to the latest NuGet package for ASP.NET MVC, run
Update-Package Microsoft.AspNet.Mvc
in the Package Manager Console. - Update the applicationÂ
web.config
 file in your project as follows:- Change theÂ
System.Web.Mvc
 version number from "4.0.0.0" to "5.0.0.0". - Change theÂ
System.Web.Helpers
 andÂSystem.Web.WebPages
 version number from "2.0.0.0" to "3.0.0.0" (if not already done). IfÂSystem.Web.WebPages.Razor
 exist as a dependent assembly, it should also have version "3.0.0.0". - Change theÂ
webpages:Version
 in theÂ<appSettings>
 section from 2.0.0.0.0 to 3.0.0.0.
The result should look like:
- Change theÂ
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
- Update theÂ
web.config
 file in theÂViews
 folder as follows:
-Â Update elements containingÂSystem.Web.Mvc
 from version "4.0.0.0" to "5.0.0.0".
- Update elements containingÂSystem.Web.WebPages.Razor
 from version "2.0.0.0" to "3.0.0.0".Â
<sectionGroup name="system.web.webPages.razor"
type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host"
type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
requirePermission="false" />
<section name="pages"
type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
requirePermission="false" />
</sectionGroup>
 If this section contains `System.Web.WebPages`, update those elements from version "2.0.0.0" to "3.0.0.0".
 Â
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
-
If you use Web API 1, run "Install-Package Microsoft.AspNet.WebApi.WebHost" in the Package Manager Console to update your global.asax from:
WebApiConfig.Register(GlobalConfiguration.Configuration);
to:
GlobalConfiguration.Configure(WebApiConfig.Register);
-
Build your solution and verify that the site is working.
See also How to upgrade an ASP.NET MVC 4 and Web API Project to ASP.NET MVC 5 and Web API 2Â (Microsoft)
Updated 8 months ago