Иерархические данные в MVC - PullRequest
0 голосов
/ 07 июля 2010

В веб-формах я использовал ретранслятор внутри ретранслятора (иерархическая модель).Как я могу добиться того же в MVC?

Пример:

Data1           Data2
 subdata1        subddata3
 subdata2        subdata4

Data3            data4
 subdata5         subdata7
 subdata6         subdata8 

Мне также требуется двухколонный макет, как показано выше.Есть идеи ??

Ответы [ 2 ]

1 голос
/ 07 июля 2010

А с двигателем с искровым обзором вы делаете это:

<div each="var item in Model.Data">
   ${item.Title}
   <div each="var subItem in item.SubData" style="padding-left: 20px">
       ${subItem.Title}
       <!-- Do some fancy stuff -->
   </div>
</div>

Бритва?Тьфу!;)

1 голос
/ 07 июля 2010

Я не могу вспомнить, где я читал это, но это относится к вам:

- Но разве нам не понадобится хотя бы управление повторителем в MVC?
- У нас есть повторитель контроля. Это называется для каждого цикла

Допустим, у вашей модели представления есть свойство с именем Data типа IEnumerable<SuperDuper>. Чтобы перебрать его, вы просто должны сделать

<% foreach (var sd in Model.Data) { %>
<!-- write out fancy stuff -->
<% } <%>

Чтобы перебрать субданные, скажем, что SuperDuper имеет свойство с именем SubData, которое также является IEnumerable<Something>. Ничто не мешает вам делать

<% foreach (var sd in Model.Data) { %>
<!-- write out some fancy stuff -->
    <% foreach (var sub in sd.SubData) { %>
    <!-- write out some more fancy stuff -->
    <% } 
 } %>

Для двухколоночного макета используйте CSS.


И поскольку Razor уже в пути, я не могу удержаться, чтобы показать вам, как будут выглядеть эти примеры с новым движком:

@foreach (var sd in Model.Data) {
<!-- write out fancy stuff -->
}


@foreach (var sd in Model.Data) {
<!-- write out some fancy stuff -->
    @foreach (var sub in sd.SubData) {
    <!-- write out some more fancy stuff -->
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...