Razor编译器警告/错误 - ASP.NET MVC 4

时间:2012-10-07 15:03:56

标签: asp.net-mvc razor compiler-errors asp.net-mvc-4 compiler-warnings

我有一个问题,似乎已在此报道:

Need razor view engine auto-complete to work in a class library?

我的问题是以下警告:

  

G:\问责\问责\视图\ LedgerUser \ EditorTemplates \ LedgerServiceViewModel.cshtml:   ASP.NET运行时错误:没有注册的构建提供程序   扩展名'.cshtml'。你可以注册一个    machine.config或web.config中的部分。   确保具有BuildProviderAppliesToAttribute属性   包括值'Web'或'All'。

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

enter image description here

enter image description here

enter image description here

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

Main Web.config

View root Web Config

我认为这个问题可能在im上也会在Views上出现以下编译器错误:

  

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

enter image description here

我做错了什么?

5 个答案:

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

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

  

C:\ Windows \ Microsoft.NET \ Framework64 \ [框架版本] \临时ASP.NET文件

然后重新启动IIS。 BAM!

答案 4 :(得分:0)

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

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

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