【问题标题】:razor add class if condition is false如果条件为假,则剃刀添加类
【发布时间】:2016-10-16 15:08:57
【问题描述】:

嘿,只有当计数高于 6 时,我才需要向 div 添加类,但我不知道问题出在哪里。感谢您的任何建议

                @{
                    int count = 0;
                 }
                @foreach (var item in Model.Models)
                {
                    <div class="col-xxs-12 col-xs-6 col-sm-4 @(count < 6 ? "" : "dismiss")">
                        <a href="@Url.Action("Detail", "Product", new { productID = item.ProductID, parentCategoryID = item.CategoryID, isProductModel = true })" class="model-wrap">
                            <div class="box">
                                <div class="img-wrap" style="background-image: url( @Url.Content(Utils.ProductImagePath(item.ImageID)) )"></div>
                                <div class="arrow f16">@item.Name <i class="fa fa-angle-right theme-color" aria-hidden="true"></i></div>
                            </div>
                        </a>
                    </div>
                } count++;
            </div> 

【问题讨论】:

    标签: c# html asp.net asp.net-mvc razor


    【解决方案1】:

    关于设置班级

    您现有的代码看起来不错,因为它只会在您的计数值通过您的三元语句大于或等于 6 时添加关闭类:

    <div class="col-xxs-12 col-xs-6 col-sm-4 @(count < 6 ? "" : "dismiss")">
    

    确定迭代范围

    您是否考虑过使用for 循环,它会自动为您处理存储当前索引?这可能会使跟踪计数更容易一些,并解决您的计数器范围不正确的任何可能问题(因为count++ 在您的foreach 循环之外):

    @for (var i = 0; i < Model.Models.Count(); i++)
    {
        // Store a reference to your item to ease syntax
        var item = Model.Models.ElementAt(i);
        <div class="col-xxs-12 col-xs-6 col-sm-4 @(i < 6 ? "" : "dismiss")">
          <a href="@Url.Action("Detail", "Product", new { productID = item.ProductID, parentCategoryID = item.CategoryID, isProductModel = true })" class="model-wrap">
            <div class="box">
                <div class="img-wrap" style="background-image: url( @Url.Content(Utils.ProductImagePath(item.ImageID)) )"></div>
                <div class="arrow f16">@item.Name <i class="fa fa-angle-right theme-color" aria-hidden="true"></i></div>
            </div>
          </a>
      </div>
    }
    

    【讨论】:

      【解决方案2】:

      您的问题是“count++”不在 foreach 循环中。 如果你想使用 foreach 循环,你应该在循环内移动“count++”。

             @{
                  int count = 0;
              }
              @foreach (var item in Model.Models)
                  {
                  <div class="col-xxs-12 col-xs-6 col-sm-4 @(count < 6 ? "" : "dismiss")">
                      <a href="@Url.Action("Detail", "Product", new { productID = item.ProductID, parentCategoryID = item.CategoryID, isProductModel = true })" class="model-wrap">
                          <div class="box">
                              <div class="img-wrap" style="background-image: url( @Url.Content(Utils.ProductImagePath(item.ImageID)) )"></div>
                              <div class="arrow f16">@item.Name <i class="fa fa-angle-right theme-color" aria-hidden="true"></i></div>
                          </div>
                      </a>
                  </div>
                  count++;
              } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-19
        • 2014-06-16
        • 2013-09-17
        • 2013-09-12
        • 1970-01-01
        • 2020-06-25
        • 2012-03-11
        • 1970-01-01
        相关资源
        最近更新 更多