пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Движки представления. Передача данных в представления. Движок представления Razor. Layout-страницы. Частичные представления. HTML-хелперы.

Движки представления. Движок представления обрабатывает ASP.NET контент и ищет инструкции, как правило, для вставки динамического контента в выходные данные, отправленные браузеру. На данный момент платформа ASP.NET включает два встроенных движка представления:

  • Движок Razor. Более современный, с простым и удобным синтаксисом
  • Движок ASPX, также известный как движок представлений Web Forms, использует синтаксис тегов Web Forms <% ...%>. Этот движок используется для поддержки совместимости в старых приложениях MVC.

Движок представления реализует интерфейс IViewEngine:

Задача движка представлений заключается в преобразовании запросов к представлениям в объекты ViewEngineResult. Первые два метода в интерфейсе, FindView и FindPartialView, принимают параметры, в которых указывается запрос и обработавший его контроллер (объект ControllerContext), имя представления и его макет, а также сообщение о том, может ли движок представлений использовать предыдущий результат из кэша. Эти методы вызываются во время обработки ViewResult. Последний метод, ReleaseView, вызывается, когда представление больше не требуется.

Последним структурным элементом движка представления является интерфейс IView. Мы передаем реализацию IView в конструктор объекта ViewEngineResult, который будет позже возвращен из методов движка представления. MVC Framework вызывает метод Render. Параметр ViewContext предоставляет информацию о запросе клиента и выводе метода действия. Параметр TextWriter записывает ответ клиенту.

Способы передачи данных в представление из методов контроллера.

Строго-типизированные представления - представления, для которых указана модель представления.

ViewBag

Динамический словарь из пар ключ-значение. Не нужно приведение типов

контроллер:

ViewData[“Message”] = “Hello”;

view: <h1>@ViewData[“Message”]</h1>

ViewData

Подобен ViewData. Но для использования сложных объектов в представлении нужно приведение типов

контроллер:

ViewBag.Message = “Hello”;

view: <h1>@ViewBag.Message</h1>

TempData

Как ViewData, представляет словарь пар ключ-значение, но позволяет сохранять значение в течении всего текущего запроса, пока не будет извлечено.

контроллер:

TempData[“Message”] = “Hello”;

view:

<h1>@TempData[“Message”]</h1>

Модель представления

В представлении через @model устанавливается модель представления. Тип модели  = тип объекта, переданного в метод View().

контроллер:

return View(new List<int>{1,2});

view: @model List<int>

<b>@string.Join(“, “, Model)<b>

 

 

 


12.01.2019; 19:50
хиты: 369
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь