我有一个名为Models的列表,其中包含ID,Title,Variants.Variants是一个包含另一个元素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();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的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>
}
Run Code Online (Sandbox Code Playgroud)
我想显示相应的变体以及此表.我怎样才能做到这一点?
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);
}
}
Run Code Online (Sandbox Code Playgroud)
如果你只想显示所有变体标题,那么你需要一个内部循环,例如在这里我将标题放在一个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>
}
Run Code Online (Sandbox Code Playgroud)