Книга: ASP.NET MVC Framework

Частичные представления

Ранее в этой главе уже говорилось об использовании частичных представлений. Механизм частичных представлений позволяет многократно использовать разметку в разных методах контроллеров, аналогично примеру из листингов 5.1—5.3. Кроме того, частичные представления могут быть использованы для отображения списков элементов. Так, в листинге 5.15 приведено частичное представление, которое используется для отображения строк таблицы товаров в представлении Index.aspx, код которого приведен в листинге 5.16.

Листинг 5.15. Частичное представление ProductListItem.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<
                        MvcViewsDemo.Models.Product>" %>
<tr>
  <td>
    <%= Html.ActionLink("Изменить", "Edit", new { }) %>
  </td>
  <td>
    <%= Html.Encode(Model.ProductID)%>
  </td>
  <td>
    <%= Html.Encode(Model.ProductName)%>
  </td>
  <td>
    <%= Html.Encode(String.Format("{0:F}", Model.UnitPrice))%>
  </td>
  <td>
    <%= Html.Encode(Model.UnitsInStock)%>
  </td>
  <td>
    <%= Html.Encode(Model.UnitsOnOrder)%>
  </td>
</tr>

Листинг 5.16. Представление Index.aspx

<%@ Page Title="" Language="C#"
         MasterPageFile="~/Views/Shared/Site.Master"
         Inherits="System.Web.Mvc.ViewPage<IEnumerable<
                      MvcViewsDemo.Models. Product»" %>
<asp:Content ContentPlaceHolderID="TitleContent"
             runat="server">
  Список товаров
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent"
             runat="server">
  <h2>
    Список товаров
  </h2>
  <table>
    <tr>
      <th>
      </th>
      <th>
        Код товара </th>
      <th>
        Название
      </th>
      <th>
        Цена
      </th>
      <th>
        На складе
      </th>
      <th>
        Заказано
      </th>
    </tr>
    <% foreach (var item in Model)
    { %>
      <% Html.RenderPartial("ProductListItem", item); %>
    <% } %>
  </table>
</asp:Content>

Вынесение оформления элемента списка в частичное представление позволяет разгрузить код разметки самого представления, а также повторно использовать оформление элемента представления на других представлениях, если это разумно с точки зрения логики приложения.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.558. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз