避免在mvc3助手中打印if条件

Jor*_*rge 0 c# razor asp.net-mvc-3

我创建了一个帮助器来构建一个列表我的问题就是每次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);
}
}
Run Code Online (Sandbox Code Playgroud)

而这个输出

在此输入图像描述

Dar*_*rov 5

你有太多了@.使用@只有当你想输出一个服务器端变量的HTML.当你在服务器端语句如foreach中时,如果,...不要使用@:

@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
    }
}
Run Code Online (Sandbox Code Playgroud)