Asp.net mvc 3 ASP.NET MVC 3,部分视图和计数()

Asp.net mvc 3 ASP.NET MVC 3,部分视图和计数(),asp.net-mvc-3,razor,partial-views,Asp.net Mvc 3,Razor,Partial Views,这是我的代码 @model QA.posts @{var c = Model.Count(o => o.parent == Model.id);} 为什么Count()方法在此区域不可用? 我在常规视图中使用它 编辑: 这是我的错误,我有IEnumerable,我想将每个项目发送到foreach语句中的部分视图。局部视图只获得一个类,而count()不起作用,这是正常的。我将找到单独发送计数以查看的解决方案。您需要导入System.Linq @using System.Linq @mod

这是我的代码

@model QA.posts
@{var c = Model.Count(o => o.parent == Model.id);}
为什么
Count()
方法在此区域不可用? 我在常规视图中使用它

编辑:
这是我的错误,我有
IEnumerable
,我想将每个项目发送到foreach语句中的
部分视图。局部视图只获得一个类,而
count()
不起作用,这是正常的。我将找到单独发送计数以查看的解决方案。

您需要导入System.Linq

@using System.Linq
@model QA.posts
@{var c = Model.Count(o => o.parent == Model.id);}
我猜想
Model
是一种
可枚举的
数据类型,这意味着为了使用,必须导入
System.Linq
名称空间

编辑:

根据您的评论,您可能需要更改模型声明:

@model IList<QA.posts> // Or whatever you want the Model to be list-wise.
@model IList//或任何您希望模型按列表显示的内容。
这样,模型现在是一个帖子列表,这意味着您现在可以使用
Count
,而无需导入System.Linq


如果这仍然没有帮助,那么您可以显示您的QA.posts模型类的代码吗?

QA.posts是一个自动生成的类,具有用于单个表的实体框架,我想在“foreach”语句中使用“partial view”,我认为@model应该是一个类而不是一个通用列表。恐怕我无法进一步提供帮助。使用
System.Linq
过去在使用EF类和扩展方法(如
Count
)时对我很有效。Jason Evans,非常感谢您的帮助。我更新了我的问题。问题是我将'single class'发送到'partial view',很明显single没有'count'方法,我通过用'ViewDataDictionary'发送'count'解决了这个问题。再次感谢您。
QA.posts
源自什么类型?这是一个看起来很奇怪的类名…这是映射到“posts”表的类,并使用实体自动生成framework@Mironline您的视图是否有“@model QA.posts”或“@model IEnumerable”??