Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
using AutoLot.Mvc.Controllers;
using AutoLot.Mvc.TagHelpers.Base;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace AutoLot.Mvc.TagHelpers
{
public class ItemListTagHelper : ItemLinkTagHelperBase
{
}
}
Добавьте открытый конструктор, который принимает обязательные экземпляры и передает их конструктору базового класса:
public ItemListTagHelper(
IActionContextAccessor contextAccessor,
IUrlHelperFactory urlHelperFactory)
: base(contextAccessor, urlHelperFactory) {}
Переопределите метод Process(), чтобы вызывать метод BuildContent() базового класса:
public override void Process(TagHelperContext context, TagHelperOutput output)
{
BuildContent(output,nameof(CarsController.Index),
"text-default","Back to List","list");
}
Код создает ссылку Back to List (Список) с изображением значка списка из Font Awesome. Чтобы не возникали ошибки при компиляции, добавьте в CarsController базовый метод Index():
public IActionResult Index()
{
return View();
}
Обеспечение видимости специальных вспомогательных функций дескрипторов
Чтобы сделать специальные вспомогательные функции дескрипторов видимыми, потребуется выполнить команду @addTagHelper для представлений, которые используют эти вспомогательные функции дескрипторов, или поместить ее в файл _ViewImports.cshtml. Откройте файл _ViewImports.cshtml в каталоге Views и добавьте в него следующую строку:
@addTagHelper *, AutoLot.Mvc
Вспомогательные функции HTML
Вспомогательные функции HTML из ASP.NET MVC по-прежнему поддерживаются, а некоторые из них применяются довольно широко и перечислены в табл. 31.5.
Вспомогательная функция DisplayFor()
Вспомогательная функция DisplayFor() отображает объект, определяемый выражением. Если для отображаемого типа существует шаблон отображения, тогда он будет применяться при создании HTML-разметки, представляющей элемент. Например, если моделью представления является сущность Car, то информацию о производителе автомобиля можно отобразить следующим образом:
@Html.DisplayFor(x=>x.MakeNavigation);
Если в каталоге DisplayTemplates присутствует представление по имени Make.cshtml, тогда оно будет использоваться для визуализации значений (вспомните, что поиск имени шаблона базируется на типе объекта, а не на имени его свойства). Если представление по имени ShowMake.cshtml (например) существует, то оно будет применяться для визуализации объекта с помощью приведенного ниже вызова:
@Html.DisplayFor(x=>x.MakeNavigation, "ShowMake");
В случае если шаблон не указан и отсутствует представление с именем класса, тогда для создания HTML-разметки, подлежащей отображению, используется рефлексия.
Вспомогательная функция DisplayForModel()
Вспомогательная функция DisplayForModel() отображает модель для представления. Если для отображаемого типа существует шаблон отображения, то он будет применяться при создании HTML-разметки, представляющей элемент. Продолжая предыдущий пример представления с сущностью Car в качестве модели, полную информацию Car можно отобразить следующим образом:
@Html.DisplayForModel();
Как и в случае со вспомогательной функцией DisplayFor(), если существует шаблон отображения, имеющий имя типа, тогда он будет использоваться. Можно также применять именованные шаблоны. Скажем, для отображения сущности Car с помощью шаблона отображения CarWithColors.html необходимо использовать такой вызов:
@Html.DisplayForModel("CarWithColors");
Если шаблон не указан и отсутствует представление с именем класса, то для создания HTML-разметки, подлежащей отображению, используется рефлексия.
Вспомогательные функции EditorFor() и EditorForModel()
Вспомогательные функции EditorFor() и EditorForModel() работают аналогично соответствующим вспомогательным функциям для отображения, но с тем отличием, что шаблоны ищутся в каталоге EditorTemplates и вместо представления объекта, предназначенного только для чтения, отображаются HTML-формы редакторов.
Управление библиотеками клиентской стороны
До завершения представлений нужно обновить библиотеки клиентской стороны (CSS и JavaScript). Проект диспетчера библиотек LibraryManager (первоначально разрабатываемый Мэдсом Кристенсеном) теперь является частью Visual Studio (VS2019) и также доступен в виде глобального инструмента .NET Core. Для извлечения инструментов CSS и JavaScript из CDNJS.com, UNPKG.com, jsDelivr.com или файловой системы в LibraryManager используется простой файл JSON.
Установка диспетчера библиотек как глобального инструмента .NET Core
Диспетчер библиотек встроен в Visual Studio. Чтобы установить его как глобальный инструмент .NET Core, введите следующую команду:
dotnet tool install --global Microsoft.Web.LibraryManager.Cli --version 2.1.113
Текущая версия диспетчера библиотек доступна по ссылке https://www.nuget.org/packages/Microsoft.Web.LibraryManager.Cli/.
Добавление в проект AutoLot.Mvc библиотек клиентской стороны
При создании проекта AutoLot.Mvc (с помощью Visual Studio или командной строки .NET Core CLI) в каталог wwwrootlib было установлено несколько файлов JavaScript и CSS. Удалите каталог lib вместе со всеми содержащимися в нем файлами, т.к. все они будут заменены диспетчером библиотек.
Добавление файла libman.json
Файл libman.json управляет тем, что именно устанавливается, из каких источников и куда попадают установленные файлы.
Visual Studio
Если вы работаете в Visual Studio, тогда щелкните правой кнопкой мыши на имени проекта AutoLot.Mvc и выберите в контекстном меню пункт Manage Client-Side Libraries (Управлять библиотеками клиентской стороны), в результате чего в корневой каталог проекта добавится файл libman.json. В Visual Studio также есть возможность связать диспетчер библиотек с процессом MSBuild. Щелкните правой кнопкой мыши на имени файла libman.json и выберите в контекстном меню пункт Enable restore on build (Включить восстановление при сборке). Вам будет предложено разрешить другому пакету NuGet (Microsoft.Web.LibraryManager.Build) восстановиться в проекте. Разрешите установку пакета.
Командная строка
Создайте новый файл libman.json посредством следующей команды (она устанавливает CDNJS.com в качестве стандартного поставщика):
libman init --default-provider cdnjs
Обновление файла libman.json
Для поиска библиотек, подлежащих установке, сеть доставки содержимого CDNJS.com предлагает удобный для человека API-интерфейс. Список всех доступных библиотек можно просмотреть по следующему URL:
https://api.cdnjs.com/libraries?output=human
Найдя библиотеку, которую вы хотите установить, модифицируйте URL, указав имя библиотеки из списка, чтобы увидеть ее версии и файлы для каждой версии. Например, для просмотра всех доступных версий и файлов jQuery используйте такую ссылку:
https://api.cdnjs.com/libraries/jquery?output=human
После выбора версии и файлов для установки добавьте имя библиотеки (плюс версию), место назначения (обычно wwwroot/lib/<ИмяБиблиотеки>) и файлы, которые требуется загрузить. Скажем, чтобы загрузить jQuery, введите в массив JSON библиотеки следующий код:
{
"library": "jquery@3.5.1",
"destination": "wwwroot/lib/jquery",
"files": [ "jquery.js"]
}
Ниже приведено полное содержимое файла
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


