Перебор списка в модели, переданной как список

#asp.net-mvc #loops #view

#asp.net-mvc #циклы #Вид

Вопрос:

Это модель, которую я передаю своему представлению как список:

     public class DogContentPage : ContentPage
    {

    public string Name { get; set; }
    public string Age { get; set; }
    public bool IsFemale { get; set; }

    public string Image { get; set; }
    public List<string> Merits { get; set; }
}
  

Вид:

 @model List<EmmysBlog_Core.Models.Dog.DogContentPage>
  

Как вы можете видеть, модель содержит список строк (достоинств). У меня проблемы с перебором списка достоинств. Я подозреваю, что причиной этого является то, что я передаю модель в виде списка..Возможно ли для меня перебирать достоинства?

Эта попытка:

 @foreach (var item in Model)
       {
          <li>@item.Merits</li>
       }
  

Дает мне только список:
Система.Коллекция.Общий…

Должен ли я изменить способ передачи модели в представление или есть другой способ построения цикла для доступа к значениям в достоинствах?

Вид:

 @foreach (var dogs in Model.Where(o => o.IsFemale))
                {
                    <div class="media">
                        <div class="col-md-4">
                            <a href="#">
                                <img src="@dogs.Image" style="width: 100%">
                            </a>

                        </div>

                        <div class="col-md-4" style="text-align: center;">
                            <a href="#"><h3 class="media-heading">@dogs.Name</h3></a>
                            @Html.ActionLink("Stamtavla", "Dog", "Home", new { pageId = dogs.Id }, null)

                        </div>
                        <div class="col-md-4">
                            <ul>
                                @foreach (var item in Model)
                                {
                                     foreach (var merit in item.Merits)
                                     {
                                         <li>@merit</li>
                                     }
                                }

                            </ul>

                        </div>
                    </div>
                }
                </div>
            </div>
  

Ответ №1:

Просто добавьте еще foreach один для Merits списка

 @foreach (var item in Model)
   foreach (var merit in item.Merits)
   {
      <li>@merit</li>
   }
  

Обновить

Затем просто удалите внешний цикл:

    foreach (var merit in dogs.Merits)
   {
       <li>@merit</li>
   }
  

Комментарии:

1. Ага, спасибо! Я должен помнить об этом! Будет отмечен как ответ как можно скорее

2. Ваш ответ сделал именно то, что я просил. Однако я не был достаточно ясен в своем вопросе.. Дело в том, что код, с которым вы помогли, содержится в другом цикле .. Это доставляет мне некоторые проблемы, потому что он перебирает все мои достоинства dogs. Если у вас есть время, пожалуйста, посмотрите мою правку.

Ответ №2:

Вам нужно будет сделать что-то вроде этого:

 @foreach (var item in Model)
   {
     <ul> 
     @foreach(var merit in item.Merits)
     {
         <li>@merit</li>
     }
     </ul>
   }