41

当我尝试运行我接管的项目时出现此错误。

我假设我的web.config有问题,但我不知道要查找什么。

“System.Web.Mvc.MvcWebRazorHostFactory”类型的表达式不能用于返回类型“System.Web.WebPages.Razor.WebRazorHostFactory”

对此的任何建议都将受到高度赞赏。

4

4 回答 4

50

尝试替换 Web.Config 中的行

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

(将 MvcWebRazorHostFactory 设置为版本 4.0.0.0)

于 2013-08-06T13:03:22.897 回答
36

在 ALL Views/web.config 下将 MvcWebRazorHostFactory 设置为版本5 .0.0.0

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
于 2013-10-18T01:07:07.370 回答
8

对于其他仍在受苦的人,我的解决方案与上面的解决方案一样,但需要进行一些调整- 我需要在项目引用中将工厂类型版本与 System.Web.Mvc dll 的版本相匹配。要找出您拥有的版本:

  1. 在您的项目中展开“参考”
  2. 右键单击 System.Web.Mvc 并查看版本

    在此处输入图像描述

  3. 更新Views 文件夹中的 web.config

所以在我的情况下,如下所示:

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
于 2016-05-25T23:34:25.950 回答
0

我得到了同样的错误。什么对我有用:右键单击您的项目并选择管理 NuGet 包。安装 Microsoft ASP.NET Razor。重建项目。

于 2017-01-12T00:56:06.527 回答