Jos*_*raw 4 c# linq asp.net-mvc razor asp.net-mvc-4
我在 VS 2017 中工作,目标是 .NET Framework 4.6.2,我在几个不同的项目中遇到过这个问题。我相信这些项目最初是在 VS 2012 中创建的,这是值得的。
我可以在任何 .cs 文件中使用 Linq 扩展和查询语法而没有任何问题,但是如果我在 .cshtml razor 文件中尝试这样的行:
@{
var activeCategories = Model.Categories.Where(x => x.Articles.Count > 0).Count();
}
<p>Active Categories: @activeCategories</p>
Run Code Online (Sandbox Code Playgroud)
我收到这样的错误:
List<Category> does not contain a definition for 'Where', and the closest Extension method
accepting a first argument of type List<Category> could not be found (are you missing a
using directive or an assembly reference?)`
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加using System.Linq;到 .cshtml 文件的顶部,但它显示了一个无法找到的错误。
我已经Web.config将 Views 文件夹下的更新为 include System.Linq,我已经检查过并且项目正在引用System.Core,并且我已经清除了%LOCALAPPDATA%/Microsoft/VisualStudio/15.0_ba2c3fe6/ComponentModelCache.
关于是否在视图中使用 LINQ 的所有哲学,这不应该发生,对吧?当我创建一个新的 ASP.NET MVC 项目时,这不是问题,只是使用这些旧项目。
我还假设这与我的本地环境有关,因为其他开发人员在他们的机器上似乎没有这个问题。
为什么会发生这种情况,我该如何解决?
需要在主 Web.config 文件中添加 System.Core 引用。
<compilation>
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)
小智 2
我有同样的问题,我尝试在 webconfig 中添加这些,然后重建,再次打开 cshtml,它对我有用!
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=3.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.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2692 次 |
| 最近记录: |