2012-12-06 15 views
5

Context Mój system posiada liczne podmioty powiązane, takie jak Lokator -> Klient -> Akcja -> itd ...ASP.NET MVC3 Utrzymanie historii nawigacji

Każda jednostka ma „Index”, która umożliwia wyszukiwanie widoku , Paging i odnośniki do Edit/Details/Delete. W widoku "szczegół" dla każdej jednostki mam zakładki wyświetlające szczegóły encji (tylko do odczytu) plus dodatkowe zakładki dla każdej jednostki podrzędnej, w której użytkownik może szukać, Strona i ma łącza do Edycji/Szczegóły/Usuń. To pozwala użytkownikowi nawigować "w dół" drzewa (że tak powiem).

Problem Schodząc drzewo działa wspaniale jej wraca się, że nie mogę wymyślić.

np. Goto tentant -> zakładka Klienci. Wyszukaj klienta według nazwy, a następnie kliknij link "szczegóły" dla tego klienta. Następnie przejdź do klienta -> Kampanie, wyszukaj kampanię, a następnie kliknij "edytuj" dla kampanii. wprowadź moje zmiany i prześlij formularz. Mogłem uzyskać dostęp do tego widoku "edycji" przez "Kampanię/indeks" lub "Klient/szczegóły -> karta Kampania". Jak więc zachować tę historię nawigacji? System, nad którym pracuję, może mieć 6 poziomów głębokości i potrzebuję czegoś, co będzie działać od nowa do końca. Jeśli mogę zachować szczegółowe informacje o stanie każdej strony wywołującej, np. kryteria wyszukiwania, numer strony, aktywna karta itd., które byłyby idealne, ale biorąc pod uwagę złożoność tego, byłbym zadowolony, po prostu wracając do właściwej strony i karty.

Najgorszym przypadkiem jest "Użytkownik", do którego można uzyskać dostęp za pośrednictwem 4 różnych stron wywołujących.

+0

Czy możesz wyjaśnić, w których punktach swojej podróży użytkownik będzie robić ładowanie stron a aktualizować zawartość kart? Na przykład. kiedy klikniesz na link szczegółów dla klienta, czy zrobi on ładowanie strony, aby przejść do szczegółów klienta, czy aktywuje kolejną kartę? –

+0

Witaj, Steve. Po kliknięciu na "zakładkę" użytkownik przejdzie na nową stronę, która "wygląda" tak samo, ale z aktywowaną zakładką. Napisałem niestandardową klasę do przechowywania historii, którą aktualizuję przy każdym kliknięciu, ale to się nie powiedzie, gdy użytkownik używa przycisku wstecz przeglądarki. Tęskni za wydarzeniem, a teraz historia się nie udaje. – P3BKAC

+0

W tej chwili mamy do czynienia z tym samym problemem. Ciekawi Cię, czy znalazłeś podejście, z którego byłeś zadowolony, a jeśli tak, to co to było? Badamy wykorzystanie plików cookie zawierających historię nawigacji i podstawowe informacje o stanie. – Michael12345

Odpowiedz

0

Nie można zapisać adresów URL w tablicy (po stronie serwera) i wepchnąć je podczas przechodzenia wzdłuż drzewa. kiedy wrócisz, możesz po prostu "wyskoczyć" z tablicy jeden po drugim. Jeśli użytkownik naciśnie przycisk Wstecz, możesz sprawdzić punkt w momencie wykonania akcji lub przekazać bieżący adres URL do serwera na czasowe wywołanie AJAX JavaScript, co może pomóc w utrzymaniu aktualności tablicy.