Когда большое количество страниц вызывает один и тот же результат просмотра, мы можем инкапсулировать один и тот же контент в компонент представления, конечно, мы также можем передавать параметры компоненту просмотра и возвращать ответный результат, сценарии: таблицы лидеров, формы, таблицы и т.д. В этой статье используется asp.net core 3.1 для объяснения использования учебника по компоненту представления ViewComponent.
Просмотр компонентов
Компонент View похож на локальный вид, но более мощный. Компонент просмотра не использует привязки модели, а опирается только на данные, предоставляемые при вызове модели. Эта статья была написана с использованием контроллеров и представлений, но компонент просмотра также можно использовать с Razor Pages.
Просмотр компонентов:
- Рендерить блоки вместо всего ответа.
- Включает те же преимущества разделения вопросов и проверяемости, которые встречаются между контроллерами и взглядами.
- Он может иметь параметры и бизнес-логику.
- Обычно вызывается со страницы верстки.
Компоненты просмотра можно использовать где угодно, где есть многоразовая логика рендеринга, слишком сложная для локального вида, например:
- Динамическое меню навигации
- Облако тегов (где запрашивается база данных)
- Панель входа
- Корзина для покупок
- Недавно опубликованные статьи
- Сайдбар-контент типичного блога
- Панель входа будет отображаться на каждой странице со ссылкой для выхода или входа, в зависимости от статуса входа пользователя
Частичный вид
В asp.net MVC 5 мы можем использовать локальный вид со следующим кодом:
Метод вызова:
ViewComponent является альтернативой локальным представлениям.
Для начала работы с ViewComponent
Просмотр класса компонентов:
- Инжекция зависимостей конструкторов полностью поддерживается
- Не участвует в жизненном цикле контроллера, то есть фильтры нельзя использовать в компонентах просмотра
- Без лишних слов, давайте сразу перейдём к моменту, когда мы хотим инкапсулировать функциональность компонентов классификации городских территорий.
Сначала создайте новую папку «ViewComponents» в каталоге проекта и создайте новый классовый файл «RootClassification.cs» со следующим кодом:
На странице просмотра мы создаём новую папку «Components» в папке «/Views/Shared» проекта, затем создаём новую папку «RootClassification» (это объект с новым классом компонента), а затем новый файл «Default.cshtml», код выглядит следующим образом:
Структура следующая:
Подробный путь: /Views/Shared/Components/RootClassification/Default.cshtml
Зачем строить такой путь? Это связано с тем, как работает компонент asp.net Core.
Во время выполнения поиск представления по следующему пути:
/Views/{Controller Name}/Components/{View Component Name}/{View Name}
/Views/Shared/Components/{View Component Name}/{View Name}
/Pages/Shared/Components/{View Component Name}/{View Name} Имя представления по умолчанию для компонента представления — Default, что означает, что ваш файл просмотра обычно будет называться Default.cshtml. При создании результата компонента представления или вызове метода View вы можете указать другое имя представления.
Вызывая, мы можем вызвать там, где нужно использовать компонент, код выглядит следующим образом:
Повторите проект с следующим рендерингом:
|