ASP.NET MVC 2 генерация представления списка / индекса - PullRequest
7 голосов
/ 23 марта 2010

ASP.NET MVC 2 имеет мощные функции для генерации зависящего от модели содержимого представлений «Правка» (с помощью EditorForModel) и подробностей (с помощью DisplayForModel), которые автоматически используют шаблоны метаданных и редактора (или отображения):

<% using (Html.BeginForm()) {%>
    <%= Html.ValidationSummary(true) %>

    <fieldset>
        <legend><%= Html.LabelForModel() %></legend>

        <%= Html.EditorForModel() %>

        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>

<% } %>

Однако я не могу найти никаких сопоставимых инструментов для «последнего» этапа создания представления «Индекс» (например, представление «Список»). Там я должен жестко кодировать столбцы сначала в строке, представляющей заголовки, а затем внутри цикла foreach:

<h2>Index</h2>

<table>
    <tr>
        <th></th>
        <th>
            ID
        </th>
        <th>
            Foo
        </th>
        <th>
            Bar
        </th>
    </tr>

<% foreach (var item in Model) { %>

    <tr>
        <td>
            <%= Html.ActionLink("Edit", "Edit", new { id=item.ID }) %> |
            <%= Html.ActionLink("Details", "Details", new { id=item.ID })%> |
            <%= Html.ActionLink("Delete", "Delete", new { id=item.ID })%>
        </td>
        <td>
            <%= Html.Encode(item.ID) %>
        </td>
        <td>
            <%= Html.Encode(item.Foo) %>
        </td>
        <td>
            <%= Html.Encode(String.Format("{0:g}", item.Bar)) %>
        </td>
    </tr>

<% } %>

</table>

Каков наилучший способ создания столбцов (с использованием метаданных, таких как HiddenInput), с целью сделать представление индекса свободным от деталей модели, таких как «Правка» и «Детали»?

Ответы [ 3 ]

1 голос
/ 15 июня 2010

Я думаю, что Фил Хаак делает в значительной степени то, что вы ищете ...

Функция шаблонов ASP.NET MVC2 - это очень хороший способ быстрой сборки объектов во время выполнения. Обязательно прочитайте фантастическую серию Брэда Уилсона по этой теме, начиная с ASP.NET MVC 2 Templates, Part 1: Введение.

Как бы ни была хороша эта функция, есть один шаблон, который явно отсутствует. ASP.NET MVC не включает шаблон для отображения списка объектов в табличном формате.

Проверьте ссылку для более ...

1 голос
/ 11 октября 2010

Может быть, эта статья http://haacked.com/archive/2010/05/05/asp-net-mvc-tabular-display-template.aspx помочь вам ..

0 голосов
/ 11 июня 2010

Взгляните на кодовый репитер Фила Хаака . Я думаю, что это может сделать то, что вы ищете.

...