2015-10-14 2 views
0

Почему, как это работает:выражения LINQ не работает с тем, где внутри Еогеаспом

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

Где, как это не делает:

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

Со вторым выражом. Не удается разрешить IsTopMenu

+1

Предполагая, что 'PageName' является' string', ваш 'Where' выполняется на' char [] ', поэтому ваш параметр' pages' на самом деле является 'char', который, очевидно, не имеет свойства IsTopMenu. Что случилось с первым фрагментом? – haim770

+0

Мне нужно написать разные, где калязно на той же модели. Если я напишу при начале в начале тега начала цикла, если выиграл, не позволяйте мне для других, где клаузулы. –

+0

Мне, вероятно, потребуется добавить обертку для таких страниц, как навигация. Я попробую поблагодарить вас. –

ответ

1

Потому что модель представляет собой список во втором выражении, который вы пытаетесь применить там, где на одном объекте, который неприемлем.

+0

Потому что я хотел добавить еще кое-где, где claues в одном и том же цикле foreach, например: IsTopMenu, IsForwardedPage и т. Д., Если я делаю это в попрошайничестве, другие, где предложения не будут возможны. Или мне лучше найти путь? –

+0

Вам нужно знать, что где или выберите только работу с Ienumerable, списком и IQueryable, или мы можем сказать, что он работает с коллекциями не на одном объекте, поэтому, если вы можете сказать мне, что именно вы пытаетесь достичь, возможно, я могу вам помочь. –

+0

Хорошо, я понял. Подойдет другой путь. Я новичок в этом извиняюсь. –

Смежные вопросы