VS2015在RazorEngine模板中看不到Linq

时间:2016-03-01 14:07:19

标签: c# .net linq razor razorengine

我正在尝试在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)的任何地方看到需要这样做。

4 个答案:

答案 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