预编译不适用于MVC 4中的Razor视图

时间:2014-03-26 14:50:16

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

我正在尝试预编译剃刀视图但在构建期间VS2010会抛出错误,例如“@ViewBag在当前上下文中不存在”。当未预编译视图时,项目构建并运行良好。

为了打开视图编译,我在项目文件中设置了以下节点:

<MvcBuildViews>true</MvcBuildViews>

以下部分存在于Views Web.config文件中。

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Xml"/>
        <add namespace="System.Xml.Linq"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

为什么项目不能构建的任何想法?

1 个答案:

答案 0 :(得分:2)

吉泽,我是不是觉得自己像个白痴?事实证明,_temp文件夹中有一些cshtml文件位于项目文件夹中。即使该文件夹已从解决方案中排除,编译器也会获取其中包含的文件。将_temp文件移出项目文件夹可以解决问题。