我正在为我的网站创建一个菜单。它有一个层次结构。
这就是我想要的:
HTML:
<ul>
<li><a href="/389">Great Grandparent</a>
<ul>
<li><a href="/456">Grandparent</a>
<ul>
<li><a href="/389">Parent</a>
<ul>
<li><a href="/986">Sibling1</a></li>
<li><a href="/983">Sibling2</a></li>
<li><a href="/418">Sibling3</a></li>
<li><strong>Self</strong>
<ul>
<li><a href="/310">Child1</a></li>
<li><a href="/953">Child2</a></li>
<li><a href="/927">Child3</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
这是我的ASPX页面中的代码。这有效:
<% For Each Ancestor As Node In ViewData("Ancestors")%>
<ul>
<li><%=Html.RouteLink(Html.Encode(Ancestor.Name), "IdOnly", New With {.id = Ancestor.Id})%>
<% Next%>
<ul>
<% For Each Sibling As Node In ViewData("Siblings")%>
<li><%=Html.RouteLink(Html.Encode(Sibling.Name), "IdOnly", New With {.id = Sibling.Id})%></li>
<% Next%>
<li><strong><%=Html.Encode(Model.Name)%></strong>
<% If Model.Children.Count > 0 Then%>
<ul>
<% For Each Child As Node In ViewData("Children")%>
<li><%=Html.RouteLink(Html.Encode(Child.Name), "IdOnly", New With {.id = Child.Id})%></li>
<% Next%>
</ul>
<% End If%>
</li>
</ul>
<% For Each Ancestor As Node In ViewData("Ancestors")%>
</li>
</ul>
<% Next%>
ASPX页面似乎很难阅读。我怎样才能清理它?
答案 0 :(得分:2)
更好的解决方案是创建一个html帮助器(如果它还不存在)。
看看这个问题,了解如何做到这一点
ASP.NET MVC HtmlHelper extensions for YUI controls (Yahoo User Interfaces)?
答案 1 :(得分:1)
我建议的一件事是在你编写父标签之前检查应该在“li”标签中的项目数,否则你最终会得到空的“ul”标签,这些标签将无法验证。如果这没有意义我稍后会详细说明我有更多时间。就格式化而言,也许更多缩进可能会使其更容易阅读。