我正在尝试在我的@helpers代码中输出结果,代码看起来像这样
@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 :(得分:1)
使用两个foreach
的一种可能方式,每个用户ID组一个:
@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>
}
答案 1 :(得分: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>
}
}
或者您可以使用Lambda表达式来减少代码行。