У меня есть список моделей, содержащий идентификатор, заголовок, варианты. Варианты - это список, который содержит другие элементы Id, ModelID, Title. Мой вопрос в том, как пройти через список вариантов, который является подсписком моделей.
Repository.cs
public class Repository : IRepository
{
private List<ModelSearch> _list = new List<ModelSearch>();
public Repository()
{
populateList();
}
private void populateList()
{
_list.Add(new ModelSearch
{
ID = 1,
Title = "Scorpio",
Variants = new List<Variant> {
new Variant { ID = 1, ModelID = 1, Title = "scorpio1" },
new Variant { ID = 2, ModelID = 1, Title = "scorpio2" },
new Variant { ID = 3, ModelID = 1, Title = "scorpio3" }
}
});
_list.Add(new ModelSearch
{
ID = 2,
Title = "Bolero",
Variants = new List<Variant> {
new Variant { ID = 1, ModelID = 2, Title = "Bolero1" },
new Variant { ID = 2, ModelID = 2, Title = "Bolero2" },
new Variant { ID = 3, ModelID = 2, Title = "Bolero3" }
}
});
}
public IEnumerable<ModelSearch> GetAll()
{
return _list.AsEnumerable();
}
}
Вот мой файл Index.cshtml:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Variants.First().Title)
</td>
</tr>
}
Я хочу отобразить соответствующие варианты также вместе с этой таблицей. Как я могу этого добиться?
ModelSearchController.cs
public class ModelSearchController : Controller
{
private IRepository _repo;
public ModelSearchController()
{
_repo = new Repository.Repository();
}
public IActionResult Index()
{
var modelList = _repo.GetAll(
return View(modelList);
}
}





Если вы просто хотите отобразить все варианты заголовков, вам понадобится внутренний цикл, например, здесь я помещаю заголовки в элемент ul:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
<ul>
@foreach(var variant in item.Variants)
{
<li>@variant.Title</li>
}
</ul>
</td>
</tr>
}
Еще одна петля по рассматриваемому имуществу.