【问题标题】:Please help me clean up my ASP.NET MVC tag soup请帮我清理我的 ASP.NET MVC 标签汤
【发布时间】:2009-03-13 15:27:26
【问题描述】:

我正在为我的网站创建一个菜单。它有一个层次结构。

这就是我想要的:

  • 曾祖父母
    • 祖父母
      • 父母
        • 兄弟姐妹1
        • 兄弟姐妹2
        • 兄弟姐妹3
        • 自我
          • 孩子1
          • 孩子2
          • 孩子3

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 页面似乎很难阅读。我该如何清理它?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    如果它不存在,更好的解决方案是创建一个 html 帮助器。

    查看此问题以获取有关如何执行此操作的想法

    ASP.NET MVC HtmlHelper extensions for YUI controls (Yahoo User Interfaces)?

    【讨论】:

      【解决方案2】:

      我建议的一件事是在编写父标签之前检查应该在“li”标签中的项目数,否则您最终可能会得到无法验证的空“ul”标签。如果这没有意义,我稍后会在有更多时间时详细说明。就格式而言,也许更多的缩进可能会更容易阅读。

      【讨论】:

      • 我检查有多个孩子: 0 Then%>
      • @Zack 很好,剩下的就是缩进。如果您将代码与 HTML 标记缩进相匹配,它应该有助于提高可读性,因此您可以轻松分辨哪个块与哪个标记搭配。
      猜你喜欢
      • 2011-01-15
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多