Пожалуйста, помогите мне вымыть мой суп ASP.NET MVC tag - PullRequest
0 голосов
/ 13 марта 2009

Я создаю меню для моего веб-сайта. У него иерархическая структура.

Вот что я хочу:

  • прадед
    • Grandparent
      • Родитель
        • Sibling1
        • Sibling2
        • Sibling3
        • Self
          • Child1
          • Child2
          • Child3

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 кажется довольно трудной для чтения. Как я могу это почистить?

Ответы [ 2 ]

2 голосов
/ 13 марта 2009

Лучшим решением было бы создать помощника HTML, если он еще не существует.

Посмотрите на этот вопрос, чтобы узнать, как это сделать

ASP.NET MVC Расширения HtmlHelper для элементов управления YUI (пользовательские интерфейсы Yahoo)?

1 голос
/ 13 марта 2009

Я бы порекомендовал проверить количество элементов, которые должны быть в тегах "li", перед тем, как писать родительские теги, в противном случае вы можете получить пустые теги "ul", которые не будут проверяться. Если это не имеет смысла, я уточню позже, когда у меня будет больше времени. Что касается форматирования, возможно, некоторые дополнительные отступы облегчат чтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...