ОПИС ВИКОРИСТАННЯ TAG-ХЕЛПЕРІВ У ПРОЕКТІ ASP.NET CORE ПО ТИПУ WEB APPLICATION (MODEL-VIEW-CONTROLLER)
21.10.2021 23:26
[1. Information systems and technologies]
Author: Самойлов В.В., бакалавр, студент, кафедра інформатики і кібернетики, Мелітопольський державний педагогічний університет, м. Мелітополь
Tag-хелпери являють собою функціональність, яка призначена для генерації HTML-розмітки. Tag-хелпери використовуються у представленнях (Views) і виглядають як звичайні HTML-елементи або атрибути. Однак при роботі веб-додатку вони обробляються движком Razor на стороні серверу і в кінцевому результаті перетворюються в стандартні HTML-елементи.
Використовувати tag-хелпери досить легко. Наприклад, визначимо у представленні (View) наступний код:
<a asp-controller="Home" asp-action="Index">Головна</a>.
Зовні цей хелпер нагадує звичайне посилання – стандартний елемент HTML, однак це не елемент HTML. І якщо скористатися спливаючою підказкою, то можна побачити всі можливі варіанти атрибутів для цього хелперу:
Рис. 1 – Всі можливі варіанти asp-атрибутів для tag-хелперу посилання
Даний tag-хелпер створює посилання, для якого в якості контролера використовується Home, а в якості методу Index. Такий хелпер буде інтуїтивно зрозумілішим і звичним, ніж створення посилання за допомогою HTML-хелперу ActionLink: @Html.ActionLink("Головна", "Index", "Home").
Проект ASP.NET MVC Core вже за замовчуванням підключає функціональність tag-хелперів у представлення за допомогою оголошення в файлі _ViewImports.cshtml наступної директиви:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers.
Перший параметр директиви вказує на tag-хелпери, які будуть доступні у всіх представленнях із папки Views, а другий параметр визначає бібліотеку хелперів. В даному випадку директива використовує синтаксис підстановок – знак зірочки ("*"), який означає, що всі хелпери із бібліотеки Microsoft.AspNetCore.Mvc.TagHelpers повинні бути доступними для всіх представлень із папки Views.
За замовчуванням ця директива визначається у файлі _ViewImports.cshtml, який знаходиться в папці Views. Однак можна конкретизувати застосування хелперів до певної групи представлень. Наприклад, якщо у проекті є каталог Views/Home – спеціально для представлень контролера HomeController, і якщо потрібно застосувати тільки до них певні хелпери, то у цьому випадку можна додати файл _ViewImports.cshtml безпосередньо в цей каталог. І будь-який tag-хелпер, який доданий директивою @addTagHelper із файлу Views/Home/_ViewImports.cshtml, буде застосовуватися тільки до представлень із каталогу Views/Home.
Ще одна директива @removeTagHelper видаляє раніше додані tag-хелпери. Її застосування аналогічне:
@removeTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers.
Дана директива може бути корисною, якщо треба, наприклад, обмежити застосування хелперів у якомусь одному представленні або групі представлень. Ця директива також визначається у файлі _ViewImports.cshtml.
Література:
1. ASP.NET Core built-in Tag Helpers [Електронний ресурс] – https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/built-in/?view=aspnetcore-5.0.
2. Tag Helpers in ASP.NET Core [Електронний ресурс] – https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro?view=aspnetcore-5.0