使用Asp.net MVC传递模型来构建站点导航
本文关键字:模型 构建 站点导航 Asp net MVC 使用 | 更新日期: 2023-09-27 18:12:09
使用Asp.net MVC创建一个模型,该模型可以传递给控制器来构建站点导航。站点导航深度为4级,如下图所示。
Html:<ul>
<li><a href="/nav-url">Nav1</a>
<ul>
<li><a href="/nav-url">Nav1.1</a></li>
<li><a href="/nav-url">Nav1.2</a></li>
<li><a href="/nav-url">Nav1.3</a>
<ul>
<li><a href="/nav-url">Nav1.3.1</a></li>
<li><a href="/nav-url">Nav1.3.2</a></li>
<li><a href="/nav-url">Nav1.3.3</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="/nav-url">Nav2</a>
<ul>
<li><a href="/nav-url">Nav2.1</a></li>
<li><a href="/nav-url">Nav2.2</a></li>
<li><a href="/nav-url">Nav2.3</a></li>
</ul>
</li>
<li><a href="/nav-url">Nav3</a>
<ul>
<li><a href="/nav-url">Nav3.1</a></li>
<li><a href="/nav-url">Nav3.2</a></li>
<li><a href="/nav-url">Nav3.3</a></li>
</ul>
</li>
</ul>
下面是我创建的模型:
Public class Nav
{
Public string Title
{get; set;}
Public string URL
{get; set;}
Public string Target
{get; set;}
}
现在,我如何在控制器中创建一个对象来完成视图中的绑定工作。应该是一个通用的列表或列表的列表有多个循环绑定值到HTML ?此外,上面显示的nav HTML是一个例子,第2级或第3级可以有项目,也可以没有。所以我的对象应该动态地处理它
List<Nav> navItems = new List<Nav>();
List<List<Nav>> navItems = new List<List<Nav>>();
我通过创建另一个模型来找到工作,这将是主要对象,我将所有数据填写为通用列表,然后将其传递给视图。
public class Nav
{
public SubNav SubNavItem { get; set; }
public List<Nav> SubNavItems { get; set; }
}
public class SubNav
{
public string Title { get; set; }
public string URL { get; set; }
public string Target { get; set; }
}