Architektura - menu globalne, a poszczególne widoki (Views)

0

Szanowni Państwo,
Załóżmy, że po lewej stronie mam menu z przyciskami, po prawej zaś właściwe ciało strony. Chciałbym, aby po kliknięciu w przycisk znajdując się po lewej stronie, po prawej stronie (w właściwym ciele strony) wyświetliło się coś w zależności od tego w jaki link kliknąłem.

Zdaję sobie sprawę z tego, że do kontrolera powinienem wysłać odpowiednie zapytanie, a on powinien zwrócić odpowiedź z danymi. Pytanie jak zaprogramować wyświetlanie zawartości w ciele strony (już w pliku .cshtml) w zależności od przesłanych danych. Jak to się realizuje? Czy powinienem wykorzystać flagi i system instrukcji warunkowych if?

W starym htmlu były po prostu tzw. "ramki".

Generalnie to utworzyłbym kilka takich samych stron (Views, tj. plików .cshtml) wraz z takim samym menu z lewej strony, zaś po prawej w zależności od tego co wybrano w menu wyświetlałbym zawartość zwracając różne widoki (Views) z kontrolera. Czy tak to się robi? Widzę tutaj takie zagrożenie, że w momencie dodania odsyłacza po lewej stronie w menu będę musiał edytować wszystkie widoki.

0

Potrzebny Ci jakiś silnik szablonów, wybierz sobie coś: http://stackoverflow.com/a/1451355

0

Dziękuję za odpowiedź. Używam VS Community 2015 i nie instalowałem dodatkowych silników. Korzystam z Razora.

Pytanie w dalszym ciągu uważam za otwarte, gdyż interesują mnie kwestie techniczne, tj. jak należy wyświetlać poszczególne strony przy użyciu Razora, a jak nie należy tego robić. Czy stosowanie if'ów w widoku to dobre rozwiązanie?

0

Nie wiem czy dobrze zrozumiałem, ale robisz sobie w oddzielnym pliku jakiś layout z tym menu po lewej, a w miejscu gdzie chcesz, żeby wyświetlały się konkretne strony dajesz @RenderBody().

Później w _ViewStart.cshtml robisz @{ Layout = "nazwa pliku z layoutem"; }.

I nie masz żadnych ifów.

0

Chodzi Ci o ify dla wyświetlania całych bloków contentu? Nie, to nie jest dobre rozwiązanie. Zastosuj dziedziczenie szablonów i/lub kompozycję za pomocą include'ów / helperów - nie wiem jak to konkretnie w Razor działa, ale tu masz chyba dobre źródło: http://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts-and-sections-with-razor

0

Po prostu przerób jakiś tutorial o ASP.NET MVC. Tam wszystkie tego typu banalne sprawy są wyjaśnione.

0

@some_ONE, @Maciej Cąderek:
Dokładnie tego szukałem - chodziło mi zagnieżdżanie Layoutów, tyle, że nie wiedziałem, że pod takim hasłem trzeba tego szukać (funkcja @RenderBody() itd.).

@somekind
Tutoriale jak najbardziej - po prostu nie wiedziałem do których drzwi zapukać ;)

Dziękuję!

1 użytkowników online, w tym zalogowanych: 0, gości: 1