Компоненты представлений в ASP.NET Core MVC. ViewComponentResult и работа с представлениями

Как правило, компонент представления наследуется от ViewComponent, инициализирует модель и передает ее в представление, вызвав один из перегруженных методов View() класса ViewComponent. Именно эти методы генерирует объект ViewComponentResult.

Читать далее

Компоненты представлений в ASP.NET Core MVC. Вывод результатов компонента (IViewComponentResult)

До сих пор мы использовали компоненты представлений, которые в качестве результата выводили обычную строку string, что, строго говоря, не совсем корректно. Обычно, в качестве результата метода Invoke()/InvokeAsync() возвращается объект, реализующий интерфейс IViewComponentResult или, в случае использования асинхронного метода, Task<IViewComponentResult>. Здесь можно провести аналогию с контроллерами — технически, действие контроллера может возвращать и обычные строки, однако на практике контроллеры всё же возвращают один из объектов, реализующих IActionResult.  Сегодня рассмотрим варианты использования классов, реализующих этот интерфейс для вывода результатов компонента представлений.

Читать далее

Компоненты представлений в ASP.NET Core MVC. Передача данных в компоненты

Компоненты представлений в ASP.NET Core MVC могут использовать в своей работе различные данные, получаемые из вне. Это могут быть какие-то параметры в виде строк, чисел и т.д., объекты, содержащие наборы параметров или зависимости. В этой части мы рассмотрим несколько возможных вариантов передачи данных в компоненты представлений.

Читать далее

Компоненты представлений в ASP.NET Core MVC. Определение компонента

Компоненты представлений (View Components) в ASP.NET Core MVC — это ещё одна функциональная особенность платформы. Формально, компонент представления представляющие собой класс C# (обычно POCO), связанный с представлением и выполняющий определенные задачи в представлении. Например, мы можем выделить в приложении ASP.NET Core MVC какие-либо части — облако тегов, меню, различного рода виджеты, которые в коде могут быть представлены отдельными компонентами представлений. Компоненты представлений очень похожи на частичные представления, о которых мы уже знаем, но, при этом, обладают рядом особенностей, с которыми мы и познакомимся в этой части.

Читать далее

Tag-хэлперы в ASP.NET Core MVC. Управление выводом (TagHelperOutput)

Объект класса TagHelperOutput позволяет управлять выводом tag-хэлпера. До сих пор мы использовали объект этого класса в ограниченном виде — просто указывали html-тэг для хэлпера и содержимое этого тэга. В этой части мы более подробно познакомимся с классом TagHelperOutput

Читать далее

Tag-хэлперы в ASP.NET Core MVC. Асинхронные операции в tag-хэлперах

В предыдущей части мы рассмотрели простой пример собственного tag-хэлпера для вывода дня недели. При этом, tag-хэлперы могут содержать внутри себя другие tag-хэлперы, обращаться (как и любые другие классы) к данным содержащимся, например, в базе данных и так далее. В таких случаях мы можем использовать асинхронные операции в tag-хэлперах.

Читать далее

Tag-хэлперы в ASP.NET Core MVC. Создание tag-хэлперов

ASP.NET Core MVC предоставляет достаточно tag-хэлперов, упрощающих нам выполнение различных задач, начиная от создания форм для отправки данных на сервер и. заканчивая, tag-хэлперами для кэширования данных. Вместе с этим, мы можем создавать собственные tag-хэлперы с помощью которых мы можем реализовывать какие-либо операции в представлениях. Здесь и далее мы рассмотрим процесс создания собственных tag-хэлперов в ASP.NET Core MVC.

Читать далее

Tag-хэлперы в ASP.NET Core MVC. Распределенное кэширование (DistributedCacheTagHelper)

Помимо обычного кэширования в памяти с использованием tag-хэлпера CacheTagHelper, в ASP.NET Core MVC мы также можем задействовать распределенное кэширование с использованием какого-либо внешнего источника. Для этого используется tag-хэлпер DistributedCacheTagHelper. Распределенное кэширование (Distributed Cache) удобно использовать в том случае, если нужен общий кэш для нескольких машин. Распределенный кэш хранится в какой-либо внешней службе и, если один сервер сохранил элемент кэша, то другие серверы могут его использовать. Например,для распределенного кэша может использоваться такой сервис, как Redis или SQL Server.

Читать далее