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

时间:2013-03-25 14:37:20

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor

当我尝试运行我接手的项目时,我收到此错误。

我认为我的 web.config 中存在问题,但我不知道该寻找什么。

  

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

对此有任何建议都非常感谢。

4 个答案:

答案 0 :(得分: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)

答案 1 :(得分:36)

在所有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" />

答案 2 :(得分:8)

对于其他仍然受苦的人,我的解决方案就像上面那个,但是有一个调整 - 我需要在你的项目参考中匹配工厂类型版本和System.Web.Mvc dll的版本。要找出您的版本:

  1. 展开&#34;参考文献&#34;在你的项目中
  2. 右键单击System.Web.Mvc并查看版本

    enter image description here

  3. 更新观看文件夹

  4. 中的web.config

    所以我的情况如下:

      <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    

答案 3 :(得分:0)

我得到了同样的错误。什么对我有用: 右键单击您的项目,然后选择Manage NuGet Packages。安装Microsoft ASP.NET Razor。重建项目。