2015-10-14 26 views
0

为什么为这一个工程工作:LINQ表达不与在里面的foreach

@foreach (var p in Model.Where(pages => pages.IsTopMenu == true)) 
{ @p.PageName } 

在哪里,因为这并不:

@foreach (var p in Model) 
{ @p.PageName.Where(pages => pages.IsTopMenu == true) 
} 

随着第二EXPR。无法解析IsTopMenu

+1

假设'PageName'是一个'string',你的'Where'在'char []'上执行,所以你的'pages'参数实际上是一个'char',显然没有'IsTopMenu'属性。第一个片段有什么问题? – haim770

+0

我需要写在不同的地方在同一个模型上的葡萄牙语。如果我在forewach循环开始标签开始编写,如果不让我为其他where子句。 –

+0

我可能需要为导航等页面添加包装。我会尽力谢谢你。 –

回答

1

因为模型是一个列表,而在第二个表达式中,您尝试应用单个对象上不可接受的位置。

+0

因为我想添加更多的地方在相同的foreach循环,如:IsTopMenu,IsForwardedPage等,如果我这样做乞讨,其他条款将不可能。或者我应该找到更好的方法? –

+0

你需要知道在哪里或选择只适用于Ienumerable,list和IQueryable,或者我们可以说它适用于不在单个对象上的集合,所以如果你可以告诉我你准确实现了什么,那么也许我可以帮助你。 –

+0

好吧,我明白了。会找到其他的方式。我对此感到抱歉。 –