我有一个问题,似乎已在此报道:
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'。
这个问题在我的所有观点中都很明显。以下示例图片。
现在我发现的所有在线帖子和引用都引用了添加各种Web.config(如前一篇文章中所述)选项,但这似乎不起作用,因为我在项目中默认了这些配置。这是我的Web配置:
我认为这个问题可能在im上也会在Views上出现以下编译器错误:
当前上下文中不存在名称“Html”
我做错了什么?
答案 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语法以红色突出显示。