2015-03-28 3 views
0

Я пытаюсь вывести результаты в моем @helpers код и код выглядит следующим образомбритва HTML вывода результата

@helpers listfiles(String ID, String CNumber,){ 
    foreach(Loopitem I in GetLoop("items")){ 
     if(I.GetValue("userId") == ID){ 
      <li>@I.GetValue("name")</li> 
     }else{ 
       If(I.GetValue("userId") != ID){ 
       <li>@I.GetValue("name")</li> 
       } 
      } 
    }  

} 

В результате я получаю все элементы Li, но то, что я хочу, что если заявление true, он должен обернуть все элементы li в элементе ul, а для оператора else он должен обернуть все li в новый элемент UL. Пожалуйста, помогите

ответ

0

Вы имеете в виду что-то вроде этого:

@helpers listfiles(String ID, String CNumber,){ 
    var lstTrue = new List<>(); 
    var lstFalse = new List<>(); 
    foreach(Loopitem I in GetLoop("items")){ 
     if(I.GetValue("userId") == ID) 
      lstTrue.Add(I); 
     else 
      lstFalse.Add(I); 
    } 
    if(lstTrue.Count()>0) 
    { 
     <ul> foreach(var I in lstTrue){<li>@I.GetValue("name")</li>}</ul> 
    } 
    if(lstFalse.Count()>0) 
    {  
     <ul> foreach(var I in lstTrue){<li>@I.GetValue("name")</li>}</ul> 
    } 
} 

Или вы можете использовать лямбда-выражения для сокращения строк кода.

1

Один из возможных способов с использованием двух foreach, по одному для каждого идентификатора пользователя группы:

@helpers listfiles(String ID, String CNumber,){ 
    <ul> 
    foreach(Loopitem I in GetLoop("items").Where(o => o.GetValue("userId") == ID)){ 
     <li>@I.GetValue("name")</li> 
    } 
    </ul> 
    <ul> 
    foreach(Loopitem I in GetLoop("items").Where(o => o.GetValue("userId") != ID)){ 
     <li>@I.GetValue("name")</li> 
    } 
    </ul> 
} 
Смежные вопросы