2016-03-14 6 views
0

Я хочу отсортировать мой цикл foreach, и я использую Html.DisplayFor(). У меня есть 3 вида досок для серфинга с категорией/цветом.Заказ Html.DisplayFor в петле foreach

Код:

@foreach (var item in Model) 
{ 
    <div style="width:25%;" class="post_grid"> 
     <div class="postImage"> 
      <a href="#"> 
       <center><img style="height:428px" src="@Html.DisplayFor(modelItem => item.Afbeelding)"/></center> 
      </a> 
     </div> 
     <h3>@Html.DisplayFor(modelItem => item.Boardnaam)</h3> 
     <h4 style="text-align:right;">&euro; @Html.DisplayFor(modelItem => item.Prijs)</h4> 
     <h4>@Html.DisplayFor(modelItem => item.Merk)</h4> 
     <div class="Informatie"> 
      <H5>@Html.DisplayFor(modelItem => item.Beschrijving)</H5> 
     </div> 
     <div class="button"> 
      @Html.ActionLink("More Information", "Details", new { id=item.ID }) 
     </div> 
    </div> 
} 

Так что я хочу, чтобы мой Еогеасп цикл, чтобы отобразить все элементы с цветовым Thats в моей модели под названием White. Например: Если item.Kleur = "White" -> Показать Html.DisplayFor() элементов.

Может кто-нибудь помочь мне с этим?

+0

Закажите по цвету или просто покажите элементы с цветом = белый? –

ответ

1

Если вы хотите перебрать только через белые элементы, вы можете использовать

@foreach (var item in Model.Where(e => e.Kleur == "White")) 
    { 
     <div style="width:25%;" class="post_grid"> 
      <div class="postImage"> 
       <a href="#"> 
        <center><img style="height:428px" src="@Html.DisplayFor(modelItem => item.Afbeelding)"/></center> 
       </a> 
      </div> 
      <h3>@Html.DisplayFor(modelItem => item.Boardnaam)</h3> 
      <h4 style="text-align:right;">&euro; @Html.DisplayFor(modelItem => item.Prijs)</h4> 
      <h4>@Html.DisplayFor(modelItem => item.Merk)</h4> 
      <div class="Informatie"> 
       <H5>@Html.DisplayFor(modelItem => item.Beschrijving)</H5> 
      </div> 
      <div class="button"> 
       @Html.ActionLink("More Information", "Details", new { id=item.ID }) 
      </div> 
     </div> 
    } 

или если вы хотите, чтобы отобразить его, если условие встречается (то есть для различных элементов разных настроек) вы можете использовать

@foreach (var item in Model) 
     { 
     if (item.Kleur == "White") 
     { 
      <div style="width:25%;" class="post_grid"> 
       <div class="postImage"> 
       <a href="#"> 
        <center><img style="height:428px" src="@Html.DisplayFor(modelItem => item.Afbeelding)"/></center> 
       </a> 
      </div> 
      <h3>@Html.DisplayFor(modelItem => item.Boardnaam)</h3> 
      <h4 style="text-align:right;">&euro; @Html.DisplayFor(modelItem => item.Prijs)</h4> 
      <h4>@Html.DisplayFor(modelItem => item.Merk)</h4> 
      <div class="Informatie"> 
       <H5>@Html.DisplayFor(modelItem => item.Beschrijving)</H5> 
      </div> 
      <div class="button"> 
       @Html.ActionLink("More Information", "Details", new { id=item.ID }) 
      </div> 
     </div> 
     } 
    } 
+0

Фильтрация должна выполняться в контроллере, а не в представлении. –

+0

Да, он должен отфильтровать его в контроллере. Но иногда вам нужно все, но только часть этого в этом конкретном месте., Поэтому вы можете использовать один список для него. –

+0

Я понимаю, что я должен делать это в контроллере, но у меня есть 3 разных типа элементов, поэтому я бы скорее сделайте это в представлении. – Jesse

Смежные вопросы