我正在尝试在Visual Studio 2015中使用完整的IntelliSense创建最简单的RazorEngine启动项目。
我正努力在模板中提供Linq扩展。它们是正确编译的,但Visual Studio在模板打开时仍然输出错误:
'列表<字符串> '不包含'Select'的定义,接受类型'List<的第一个参数。字符串> '可以找到(你错过了使用指令或汇编引用吗?)
@using System.Linq
上的错误,但错误是:
名称空间'System'
中不存在类型或命名空间'Linq'
我错过了什么?
完整代码位于此分支:https://github.com/cyrilgandon/RazorEngineGenerator/tree/LinqUnavailable
我可以看到有些帖子建议在app.config中添加引用,但我没有在文档(link)的任何地方看到需要这样做。
答案 0 :(得分:1)
我有同样的问题,我已经尝试了我能在这里找到的一切,但没有任何效果。最后我将.NET框架版本从4.0更改为4.5.2,问题就消失了。
答案 1 :(得分:0)
我通过添加引用修复了同样的问题 具有自定义模板的项目中的System.Web.WebPages和System.Web.WebPages.Razor。我在这个项目中没有任何web.config。
答案 2 :(得分:0)
我有同样的问题,问题出现在web.config(不是视图下的那个)有这些行
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
删除这些行后,问题就消失了,intellisense再次开始为Linq表达式工作。
更新
好的,卸载VS 2013后,错误又回来了。但是在安装这两个之后它就得到了解决 MVC4 - https://www.microsoft.com/en-us/download/details.aspx?id=30683 网页2.0 - https://www.microsoft.com/en-us/download/details.aspx?id=34600
我认为在安装网页2.0之后它已经修复,但我也安装了MVC4以便更安全。
答案 3 :(得分:-1)
扩展方法仅在引用的命名空间中作为扩展方法使用。 尝试添加:
@using System.Linq