#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>
}