Search code examples
c#razorumbraco

umbraco and c# Razor : how to print odd and even vlaue alternativelty in partialview or view in page from Model


Requirement

I have two html for left side image & content and for right side image & content. value print from models. what can i write in for-each loop to print odd and even value alternatively in partial view in page from Model.

    @inherits UmbracoViewPage<List<ProjectName.Models.DealerSectionModel>>
    @using ProjectName.Models;
    @using Umbraco.Core;
    
    
    @{ 
        foreach (DealerSectionModel historylist in Model)  // what should i write in this loop .(ex if 1 value in model then print odd html)
        {
            if ()
            {
                @RenderEvenHistoryList(historylist)
            }
            else
            {
                @RenderOddHistoryList(historylist)
            }
           
        }
    }
    
    @helper RenderOddHistoryList(DealerSectionModel item)
            {
            <div class="row history-second-section py-2 py-xl-4 py-lg-4 py-md-4 py-sm-2">
                <div class="col-12 col-xl-6 col-lg-6 col-md-6 col-sm-12 history-second-images">
                    <div class="quote my-3"><iframe src="@item.VideoUrl" width="510" height="282" frameborder="0" allowfullscreen></iframe></div>
                </div>
                <div class="col-12 col-xl-6 col-lg-6 col-md-6 col-sm-12 history-second-content">
                    <div class="content-year">@item.Title </div>
                    <h4>@item.ImageTitle</h4>
                    <p>@item.ImageDescription</p>
                    
                </div>
            </div>
    
    }
    
    }
    
    @helper RenderEvenHistoryList(DealerSectionModel item)
            {
       // render html for even model value
    }
    
    }


Solution

  • I don't know much about umbraco, but why not try something simple like

     @{ 
         var even = false;
            foreach (DealerSectionModel historylist in Model)  // what should i write in this loop .(ex if 1 value in model then print odd html)
            {
                if (even)
                {
                    @RenderEvenHistoryList(historylist)
                }
                else
                {
                    @RenderOddHistoryList(historylist)
                }
               even = !even;
            }
        }