我创建了一个帮助器来构建一个列表我的问题就是每次if表达式它会在我的html中用true或false打印值。我怎样才能避免这种行为?
这是我的助手
@helper elementTipificacion(IEnumerable<prueba.Models.Tipificacion> datos){
foreach (var item in @datos)
{
if (@item.Tipificacion1.Count > 0) <--- this the expression thay print's true or false
{
<li>
<a href="#" id="tipificacion-@item.IdTipificacion">@item.Nombre</a>
<ul>
@elementTipificacion(@item.Tipificacion1)
</ul>
</li>
}
else{
<li>
<a href="#" id="tipificacion-@item.IdTipificacion">@item.Nombre</a>
</li>
}
@datos.ToList().Remove(@item);
}
}
这就是输出
答案 0 :(得分:5)
你有太多@
。仅当您要将服务器端变量输出到HTML时才使用@
。当你在服务器端语句中时,如foreach,if,...不要使用@:
@helper elementTipificacion(IEnumerable<prueba.Models.Tipificacion> datos)
{
foreach (var item in datos)
{
if (item.Tipificacion1.Count > 0)
{
<li>
<a href="#" id="tipificacion-@item.IdTipificacion">
@item.Nombre
</a>
<ul>
@elementTipificacion(@item.Tipificacion1)
</ul>
</li>
}
else
{
<li>
<a href="#" id="tipificacion-@item.IdTipificacion">
@item.Nombre
</a>
</li>
}
datos.ToList().Remove(item); // <!-- not sure the usefulness of this line
// The .ToList() extension method returns a new list everytime you call it
// and you don't seem to be doing anything with the result of it, you don't even
// assign it to a variable
}
}