14

我有一个问题似乎已在此处报告:

需要剃刀视图引擎自动完成才能在类库中工作?

我的问题是以下警告:

G:\Accountable\Accountable\Views\LedgerUser\EditorTemplates\LedgerServiceViewModel.cshtml:ASP.NET 运行时错误:没有为扩展“.cshtml”注册构建提供程序。您可以在 machine.config 或 web.config 的部分中注册一个。确保它具有包含值“Web”或“All”的 BuildProviderAppliesToAttribute 属性。

这个问题在我所有的观点中都很明显。下面的示例图像。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

现在,我发现的所有在线帖子和参考资料都引用了添加各种 Web.config(如上一篇文章中所述)选项,但这似乎不起作用,因为我在项目中默认了这些配置。这是我的网络配置:

主 Web.config

查看根 Web 配置

我认为这个问题可能在我还在视图上得到以下编译器错误时:

当前上下文中不存在名称“Html”

在此处输入图像描述

我究竟做错了什么?

4

5 回答 5

22

Arrrgghhh 我错过了 ROOT Web.config 中的以下内容:

 <compilation debug="true" targetFramework="4.0">
  <!-- New -->
  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

这允许修复错误并允许我在视图中使用 Intellisense。

于 2012-10-07T16:02:30.127 回答
3

在根 Web.config 中放回以下行已修复:

<system.web>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
</system.web>
于 2013-05-30T17:34:22.620 回答
2

我通过简单地卸载和重新加载项目来让它工作。上面的所有命名空间都已经存在于根 web.config 中,我仍然遇到这个问题。

于 2014-01-31T04:13:43.907 回答
2

删除临时 asp.net 框架文件对我有用。

停止 IIS 并删除此文件夹下的所有内容:

C:\Windows\Microsoft.NET\Framework64\[框架版本]\Temporary ASP.NET Files

然后重新启动 IIS。砰!

于 2016-02-08T13:40:46.610 回答
0

我尝试重新启动 IIS,删除临时 ASP.NET 文件并更改 Web 配置文件中的编译标记。它们都不适合我。

我通过删除 System.Web.MVC 并将其添加到项目中解决了这个问题。

在我的情况下,Razor 语法以红色突出显示。

于 2016-12-30T04:15:51.393 回答