Loading...
Area: Episerver CMS
Applies to versions: 8

Upgrading from MVC 4 to 5

Recommendations [hide]

This document describes the steps needed to upgrade an existing EPiServer solution from ASP.NET MVC 4 to MVC 5.

Steps to upgrade

Follow the steps below to upgrade your EPiServer project to the latest MVC version.

  1. Upgrade your site to the latest NuGet package for ASP.NET MVC, run "Update-Package Microsoft.AspNet.Mvc" in the Package Manager Console.
  2. 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:

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


  3. 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>
        
  4. 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);
  5. Build your solution and verify that the site is working.

See also

Do you find this information helpful? Please log in to provide feedback.

Last updated: Oct 20, 2016

Recommendations [hide]