Când un număr mare de pagini apelează același rezultat de vizualizare, putem încapsula același conținut într-o componentă de vizualizare, desigur, putem de asemenea să transmitem parametri componentei de vizualizare și să returnăm rezultatul răspunsului, scenarii: clasamente, formulare, tabele etc., acest articol folosește asp.net nucleu 3.1 pentru a explica cum să folosim tutorialul componentei de vizualizare ViewComponent.
Componente de vizualizare
Componenta de vizualizare este similară cu o vizualizare locală, dar mai puternică. Componenta de vizualizare nu folosește legături de model, ci se bazează doar pe datele furnizate atunci când modelul este apelat. Acest articol a fost scris folosind controlere și vizualizări, dar componenta view poate fi folosită și cu Razor Pages.
Vizualizați componentele:
- Redă blocurile în loc de întregul răspuns.
- Include aceeași separare a preocupărilor și beneficiilor de testabilitate găsite între controleri și vizualizări.
- Poate avea parametri și logică de business.
- De obicei se numește de pe pagina de layout.
Componentele de vizualizare pot fi folosite oriunde ai logică de randare reutilizabilă care este prea complexă pentru o vizualizare locală, cum ar fi:
- Meniu de navigare dinamică
- Cloud de etichete (unde este interogată baza de date)
- Panoul de autentificare
- Coș de cumpărături
- Articole publicate recent
- Conținut din bara laterală pe un blog tipic
- Panoul de autentificare va apărea pe fiecare pagină cu un link pentru deconectare, în funcție de starea utilizatorului
Vedere parțială
În asp.net MVC 5 putem folosi o vizualizare locală cu următorul cod:
Metoda de apel:
ViewComponent este o alternativă la vizualizările locale.
ViewComponent pentru a începe
Vizualizează clasa componentelor:
- Injectarea de dependență a constructorului este complet suportată
- Nu este implicat în ciclul de viață al controllerului, ceea ce înseamnă că nu poți folosi filtre în componentele de vizualizare
- Fără alte introduceri, să trecem direct la punctul în care vrem să cuprindem funcționalitatea componentelor unei clasificări de zonă urbană.
Mai întâi, creează un nou folder "ViewComponents" sub directorul proiectului și creează un nou fișier de clasă "RootClassification.cs" cu următorul cod:
Pe pagina de vizualizare, creăm un nou folder "Components" sub folderul "/Views/Shared" al proiectului, apoi creăm un nou folder "RootClassification" (acesta este obiectul cu noua clasă component pe care am creat-o), și apoi creăm un nou fișier "Default.cshtml", codul fiind următorul:
Structura este următoarea:
Calea detaliată este: /Views/Shared/Components/RootClassification/Default.cshtml
De ce să construiești un astfel de drum? Acest lucru are legătură cu modul în care funcționează componenta asp.net Core.
Runtime-ul caută vizualizarea pe următorul traseu:
/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} Numele implicit de vizualizare pentru componenta view este Default, ceea ce înseamnă că fișierul tău view va fi de obicei numit Default.cshtml. Când creezi un rezultat component de vizualizare sau apelezi o metodă View, poți specifica un alt nume de vizualizare.
Apelând, putem chema unde trebuie să folosim componenta, codul este următorul:
Rerulează proiectul cu următoarea randare:
|