【发布时间】:2017-04-04 06:46:31
【问题描述】:
我仍在学习 .net MVC,可能没有正确搜索我需要找到解决方案的内容。
简而言之,我在数据库中有一个表,其结构如下:
ID Category Subcategory FK
所以每个类别可能出现多次,每个子类别也可能出现多次,这是该类别唯一的。
我想在视图中呈现一个菜单,如下所示:
Category 1
Subcategory 1a
Subcategory 1b
Subcategory 1c
Category 2
Subcategory 2a
Subcategory 2b
等等。现在在我的控制器中:
var categories = db.Category
.Where(oa => oa.Category != "")
.GroupBy(oa => new { oa.Category, oa.Subcategory })
.Select(oa => oa.FirstOrDefault());
但是,我不确定如何在视图中实现我想要实现的目标。我知道我必须以某种方式遍历列表,但我不确定如何。我知道这涉及到以下方面:
@foreach (var item in Model)
{
<li>
<a id="@item.ID" href="#">@item.Category</a>
</li>
}
但我只希望每个类别出现一次,然后需要所有子类别出现在父类别下。或者我可能需要更改控制器以及它如何发送数据?
【问题讨论】:
标签: c# asp.net-mvc razor