【问题标题】:Formatting using loop使用循环格式化
【发布时间】:2016-08-23 08:04:10
【问题描述】:

目前,我可以使用i class 和以下代码显示循环中的文本,并在文本上方显示一个红色圆圈:

<div id="testwrap"> 
@foreach (mainnav mainnav in @Model)
{
    if (mainnav.HasSideNav == 0)
    {
    <a style="color:red" href='@Url.Action("Content", new { id = mainnav.contentID })' class="ajax2">@mainnav.DisplayLabel</a>
    }
    else
    {
        <div class="col-sm-3 text-center feature">
        <i class="fa fa-tablet iconred"></i> 
    <a style="color:blue" href='@Url.Action("SideNavLevel1", new { id = mainnav.MNavSubID })' class="ajax2">@mainnav.DisplayLabel</a>
    </div>
    }
}
 </div>

我的目标是让图标变成蓝色、绿色、黄色、橙色等......

我尝试添加一个计数器,但它不起作用。

谁能帮我添加循环/计数器以将 iconred 的位置更改为 iconblue 等...?

【问题讨论】:

  • 你什么时候想要红色、橙色或蓝色?
  • 我有 4 个圆圈出现,所以应该是 iconred、iconblue、iconyellow、icongreen。问题是我正在使用循环从表中获取此数据,并且它以一行上的 4 个链接形式返回,这就是为什么我只得到四个红色圆圈的原因。
  • 那么第五项会再次变红吗?
  • 永远只有 4 个圈子。
  • 所以你的收藏(`@Model) 将只有 4 个项目?

标签: html css asp.net asp.net-mvc-4 razor


【解决方案1】:

您可以将颜色保存在一个数组中,并将其与计数器一起使用。

@{
    var counter = 0;
    string[] colors = new string[] { "red", "blue", "orange","green" };
}

<div id="testwrap">

    @foreach (var mainnav in YourCollection)
    {
        if (mainnav.HasSideNav == 0)
        {
            <a style="color: red" href='#' class="ajax2">@mainnav.DisplayLabel</a>
        }
        else
        {
            <div class="col-sm-3 text-center feature">
                <i class="fa fa-tablet icon@(colors[counter])"></i>
                <a style="color: blue" href='#' class="ajax2">@mainnav.DisplayLabel</a>
            </div>
        }
        counter++;
        if (counter == 4)
        {
            counter = 0;
        }    
    }
</div>

如果您的收藏中有超过 4 个项目,则第五个项目将再次变为红色,依此类推。

【讨论】:

  • 谢谢,我已经在计数器代码和图标中添加了@(colors[counter] 并且它有效:)
猜你喜欢
  • 2020-02-22
  • 2021-07-25
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多