0

目前,这是我从数据库中提取项目列表并在菜单项下显示的代码:

<div class="top">
<ul>
<li class='itemCaption f17o'>&nbsp;</li>
@foreach (var category in Model.CatList)
{
<li>
<a href="/c/@category.Id/@category.Name" class='white'>@category.Name</a>
</li>
}
</ul>
</div>

我也使用下面的代码尝试了相同的操作,但是即使逻辑看起来正确,名为 value 的变量也会产生问题……因为我对 MVC 很陌生,这对我来说也很头疼……

@foreach (var category in Model.CatList.Select((Value, i => new { i, Value }))
{
    if (category.i % 8 == 0)
    {
        @("</ul></li><li><ul>")
    }
    <li>
        <a href="/c/@category.Value.Id/@category.Value.Name" class='white'>@category.Value.Name</a>
    </li>
}

.. 有人可以帮我重写 For-loop 中的代码而不是 for-each ..

4

1 回答 1

0

我没有使用你的模式,但我希望你能适应下面的例子

@foreach (var x in Enumerable.Range(0, 200))
{
    if (x % 8 == 0)
    {
        @:<ul>
        @:<li>@x</li>
    }
    else if (x % 8 == 7)
    {
        @:<li>@x</li>
        @:</ul>
    }
    else {
         @:<li>@x</li>
    }
}

如果这不是你想要完成的,请告诉我,我会编辑

编辑

你的模型应该是

@foreach (var category in Model.CatList.Select((Value, i) => new { i, Value }))
{
    if (category.i % 8 == 0)
    {
        @:<ul>
        @:<li><a href="/c/@Value.Id/@Value.Name" class='white'>@Value.Name</a></li>
    }
    else if (category.i % 8 == 7)
    {
        @:<li><a href="/c/@Value.Id/@Value.Name" class='white'>@Value.Name</a></li>
        @:</ul>
    }
    else {
         @:<li><a href="/c/@Value.Id/@Value.Name" class='white'>@Value.Name</a></li>
    }
}
于 2013-02-20T16:16:59.253 回答