2011-03-13 22 views
5

Zastanawiam się, jak mogę znaleźć poprzednio odwiedzany adres URL do sesji?Przekieruj do poprzedniego adresu URL?

Po wykonaniu czynności przez użytkownika mogę przekierować go do tego adresu URL.

Czy istnieje jakiś standardowy sposób, aby to zrobić? W przeciwnym razie zamierzałem dodać pewne przesłonięcia do Global.asax i użyć zmiennej sesji do przechowywania historii adresów URL.

Odpowiedz

5

Request.UrlReferrer może być to, co chcesz, ale warto pomyśleć o użyciu AJAX lub przekazując jako parametr url ...

1

Powyższa odpowiedź jest całkowicie poprawna, chociaż w niektórych przypadkach nie można przejść adres URL wzdłuż ciągu zapytania, na przykład, gdy adres URL jest zamaskowany. W tym przypadku właściwą metodą jest Request.UrlReferrer. Problem z używaniem zmiennej sesji może wygasnąć i spowodować nierzetelne zachowanie. Lub jeśli masz więcej niż jedną sesję aktywnych lub serwerów lustrzanych, to w ogóle nie działa.

Generalnie nie jest dobrym pomysłem użycie zmiennych sesji w MVC, gdy można tego uniknąć. Rozwiązaniem, z którym skorzystałem, było używanie JavaScriptu do uzyskania poprzedniego adresu URL i przekazania go w modelu widoku.

+0

To nie zadziała, jeśli użytkownik ma wyłączony javascript. Kodowanie URL ma więcej sensu. – ashes999

+1

Oh, powinienem dodać, że cała strona jest zależna od JavaScript w moim przypadku i nie pozwala użytkownikowi przeglądać tej strony bez włączonego JS heh – whoblitz

Powiązane problemy