我有一个名为Models的列表,其中包含ID,标题,变体。 Variants是一个包含其他元素Id,ModelID,Title的列表。 我的问题是如何遍历Variants列表,该列表是Models的子列表。
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);
}
}
答案 0 :(得分:7)
如果只想显示所有变体标题,则需要一个内部循环,例如,在这里,我将标题放在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>
}