我从具有自我关系的数据库获取此数据
Parent_ID Name Child_ID
1 cities null
2 Egypt 1
3 Saudi 1
4 technology null
5 vb.net 4
6 c# 4
现在我想使用这个数据构建html导航栏
如下所示
<ul>
<li><a href="#">cities</a>
<ul>
<li><a href="#">Egypt</a></li>
<li><a href="#">Saudi</a></li>
</ul>
</li>
<li><a href="#">technology</a>
<ul>
<li><a href="#">vb.net</a></li>
<li><a href="#">c#</a></li>
</ul>
</li>
</ul>
我不知道最好的方法是什么 我是xml节点或我正在使用linqu ... 无论最好的方式是什么帮助我。
答案 0 :(得分:0)
您可以使用asp:reapeater
控件为其提供数据源并在其中提供html格式。最简单有效的方法。
更多探索....
已编辑:您必须提及
在mvc中,您可以在viewBag
,viewdata
内传递数据,无论您喜欢什么,并且在视图中您可以使用foreach迭代并在其中生成所需的html
喜欢
ViewDate["data whatever"] = your data
和html
@foreach(var item in ....)
{
<a href='item.whatever Value'>
}
答案 1 :(得分:0)
好的,这是创建n深度菜单视图模型的一种方法
使用一个select来获取表中的所有数据,并填充menuItemMV列表。创建一个menuMV对象,并将此列表放在静态AllMenuItems列表中。为菜单的根创建一个剃刀视图并将其绑定到menuMV。为菜单项创建一个局部视图,该菜单项绑定到menuItemVM,它应该包含一个循环遍历childern的for循环,并递归调用它正在渲染的menuItemVM中每个子节点的RenderParital本身(部分视图)。
让你的根菜单剃刀循环遍历rootMenuItems并渲染每个
的menuitem局部视图 public class menuVM
{
public static List<menuItemVM> AllMenuItems { get; set; }
public IEnumerable<menuItemVM> rootMenuitems
{
get { return menuVM.AllMenuItems.Where(c => c.ParentId == null); }
}
}
public class menuItemVM
{
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get;set; }
public IEnumerable<menuItemVM> Childern {
get
{
return menuVM.Childern.Where(c => c.ParentId == this.Id);
}
}
}
PS。我认为你有孩子和父母的错误方法 样本数据