Когато голям брой страници извикат един и същ резултат от изглед, можем да капсулираме същото съдържание в компонент на изглед, разбира се, можем също да предаваме параметри към компонента на view и да връщаме резултата от отговора, сценарии: класации, формуляри, таблици и др., тази статия използва asp.net core 3.1, за да обясни как да използвате урока за компонента view на ViewComponent.
Вижте компонентите
Компонентът View е подобен на локалния изглед, но е по-мощен. Компонентът view не използва моделни връзки, а разчита само на данните, които се предоставят при извикване на модела. Тази статия е написана с помощта на контролери и изгледи, но компонентът view може да се използва и с Razor Pages.
Вижте компонентите:
- Рендерирайте блокове вместо целия отговор.
- Включва същото разделяне на притесненията и ползите за тестване, които се срещат между контролери и изгледи.
- Може да има параметри и бизнес логика.
- Обикновено се извиква от страницата за оформление.
Компонентите на вида могат да се използват навсякъде, където имате повторно използваема рендеринг логика, която е твърде сложна за локален изглед, като например:
- Динамично меню за навигация
- Облак от тагове (където се заявява базата данни)
- Панел за вход
- Количка за пазаруване
- Наскоро публикувани статии
- Съдържание в страничната лента на типичен блог
- Панелът за вход ще се появи на всяка страница с линк за излизане или влизане, в зависимост от статуса на влизане на потребителя
Частичен изглед
В asp.net MVC 5 можем да използваме локален изглед със следния код:
Метод на извикване:
ViewComponent е алтернатива на локалните изгледи.
ViewComponent за начало
Виж клас на компоненти:
- Инжекцията на зависимост на конструктора е напълно поддържана
- Не участва в жизнения цикъл на контролера, което означава, че не можеш да използваш филтри в компонентите на view
- Без повече забавяне, нека преминем направо към точката, в която искаме да обобщим функционалността на компонентите на класификацията на градска зона.
Първо, създайте нова папка "ViewComponents" под директорията на проекта и създайте нов клас файл "RootClassification.cs" със следния код:
На страницата за изглед създаваме нова папка "Components" под папката "/Views/Shared" на проекта, след това създаваме нова папка "RootClassification" (това е обектът с новия клас компонент, който създадохме), и след това създаваме нов файл "Default.cshtml", кодът е следният:
Структурата е следната:
Подробният път е: /Views/Shared/Components/RootClassification/Default.cshtml
Защо да се строи такъв път? Това е свързано с начина, по който работи компонентът asp.net Core.
Runtime търси изгледа по следния път:
/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, можете да зададете различно име на изглед.
При извикване можем да извикаме там, където трябва да използваме компонента, кодът е следният:
Рестартирайте проекта със следното рендериране:
|