I am getting this error when I try to run a project that I took over.
I assume I have a problem in my web.config, but I don't know what to look for.
Expression of type 'System.Web.Mvc.MvcWebRazorHostFactory' cannot be
used for return type 'System.Web.WebPages.Razor.WebRazorHostFactory'
Any suggestions on the same are highly appreciated.
Try to replace line in Web.Config
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
to
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
(set MvcWebRazorHostFactory to version 4.0.0.0)
Set MvcWebRazorHostFactory to version 5.0.0.0 in ALL Views/web.config
Under
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
For everybody else still suffering, my solution was just like the one above, but with a tweak - I needed to match factory type version with version of System.Web.Mvc dll in your project references. To find out which version you have:
- Expand "References" in your project
Right-click on System.Web.Mvc and look at version
Update web.config in your Views folder
So in my case it was as below:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
I got the same error. What worked for me:
Right-click on your project and select Manage NuGet Packages. Install Microsoft ASP.NET Razor. Rebuild the project.