Gdy duża liczba stron wywołuje ten sam wynik widoku, możemy zahalić tę samą treść w komponent widoku, oczywiście możemy też przekazać parametry do komponentu widoku i zwrócić wynik odpowiedzi, scenariusze: rankingi, formularze, tabele itd. Ten artykuł wykorzystuje asp.net podstawy 3.1, aby wyjaśnić, jak korzystać z tutorialu dotyczącego komponentu widoku ViewComponent.
Zobacz komponenty
Komponent View jest podobny do widoku lokalnego, ale potężniejszy. Komponent widoku nie używa wiązań modelu, lecz opiera się jedynie na danych dostarczanych podczas wywoływania modelu. Ten artykuł został napisany za pomocą kontrolerów i widoków, ale komponent widoku można również używać z Razor Pages.
Zobacz składniki:
- Renderuj bloki zamiast całej odpowiedzi.
- Zawiera ten sam rozdział kwestii i korzyści testowalnych, jaki występuje między kontrolerami a poglądami.
- Może mieć parametry i logikę biznesową.
- Zazwyczaj wywoływane są z strony układu.
Komponenty widoku można używać wszędzie tam, gdzie masz wielokrotnego użytku logikę renderowania, która jest zbyt skomplikowana dla lokalnego widoku, na przykład:
- Dynamiczne menu nawigacyjne
- Chmura tagów (gdzie baza danych jest zapytywana)
- Panel logowania
- Koszyk na zakupy
- Niedawno opublikowane artykuły
- Treści na pasku bocznym na typowym blogu
- Panel logowania pojawi się na każdej stronie z linkiem do wylogowania lub zalogowania, w zależności od statusu logowania użytkownika
Widok częściowy
W asp.net MVC 5 możemy użyć lokalnego widoku z następującym kodem:
Metoda wywołania:
ViewComponent jest alternatywą dla lokalnych widoków.
ViewComponent, aby zacząć
Zobacz klasę komponentu:
- Wstrzykiwanie zależności konstruktorów jest w pełni obsługiwane
- Nie jest to zaangażowane w cykl życia kontrolera, co oznacza, że nie można używać filtrów w komponentach widoku
- Bez zbędnej zwłoki przejdźmy od razu do sedna, w którym chcemy objąć funkcjonalność komponentów klasyfikacji obszarów miejskich.
Najpierw stwórz nowy folder "ViewComponents" w katalogu projektu i utwórz nowy plik klasy "RootClassification.cs" z następującym kodem:
Na stronie widoku tworzymy nowy folder "Components" w folderze "/Views/Shared" projektu, następnie tworzymy nowy folder "RootClassification" (to jest obiekt z nową klasą komponentu, którą stworzyliśmy), a następnie tworzymy nowy plik "Default.cshtml", którego kod wygląda następująco:
Struktura wygląda następująco:
Szczegółowa ścieżka to: /Views/Shared/Components/RootClassification/Default.cshtml
Po co budować taką ścieżkę? Ma to związek z tym, jak działa komponent asp.net Core.
Czas wykonania wyszukuje widok w następującej ścieżce:
/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} Domyślna nazwa widoku dla komponentu widoku to Default, co oznacza, że Twój plik widoku zwykle będzie nazywał się Default.cshtml. Podczas tworzenia wyniku komponentu widoku lub wywoływania metody View możesz określić inną nazwę widoku.
Wywołując go, możemy wywołać tam, gdzie chcemy użyć komponentu, a kod wygląda następująco:
Ponownie uruchom projekt z następującym renderowaniem:
|