2013-08-27 11 views
23

Obecnie w związkuna Html.ActionLink kliknij przycisk Przejdź do poprzedniej strony

Customer/businessunit/RepresentativeDetails?RepresentativeId=cd3a7263-78f7-41bd-9eb0-12b30bc1059a

Mam następujący kod dla widoku

@Html.ActionLink("Back to List", "Index") 

który zabierze mnie do tego linka

customer/businessunit/index 

, ale zamiast tego przechodzę na stronę indeksowania Chcę przejść do poprzedniej strony, gdy link akcji i kliknięto, co jest

Customer/businessunit/BusinessUnitDetails/c4a86253-a287-441e-b83d-71fbb6a588bc 

Jak utworzyć łącze akcji, które przekieruje mnie na poprzednią stronę? coś @Html.ActionLink("Back to Details", //go to previous page)

+0

Możliwa duplikat [actionlink Wstecz] (http: // stackoverflow. com/questions/4686124/actionlink-back-button) – rogerdeuce

Odpowiedz

47

Jeśli nie śledzisz zawartości poprzedniej strony na serwerze, dlaczego nie chcesz użyć historii wewnętrznej przeglądarki? W takim przypadku nie byłoby potrzeby stosowania kodu po stronie serwera. można po prostu użyć coś takiego:

<a href="javascript:void(0);" onclick="history.go(-1);">Back to Details</a> 

Albo oddzielenie kodu od znaczników:

<a href="javascript:void(0);" id="backLink">Back to Details</a> 

<script type="text/javascript"> 
    $(document).on('click', '#backLink', function() { 
     history.go(-1); 
    }); 
</script> 

Byłoby to wysłać użytkownikowi powrót do tego, co było ostatnią stronę w historii przeglądarki. (Oczywiście, gdyby dotarli do tej strony z dowolnego innego źródła, to nie zabrałoby ich "z powrotem do szczegółów", ale zamiast tego po prostu "wrócili".)

+1

Nie w porządku, jeśli masz szczegółową wiadomość na stronie – Emanuele

9

Nie używaj actionlink za to ... po prostu zrobić:

<a href="javascript:history.back()">Back to List</a>

... który odbędzie użytkownika z powrotem tam, gdzie były przed bieżącej strony

1

To trochę po fakcie, ale pomyślałem, że "przyczynić się. Osobiście oznaczałbym moje elementy znaczników klasą CSS, więc mogłem po prostu ponownie użyć tagu i zrobić z nim.

Markup:

<a href="" class="go_back"> Back </a> 

Scenariusz:

<script type="text/javascript"> 
    $(function() { 
     $('.go_back').click(function (e) { 
      e.preventDefault(); 
      history.go(-1); 
     }); 
    }); 
</script> 
27

Jeśli nadal chcesz używać ActionLink można zrobić coś takiego jak sugeruje JuanPieterse

@Html.ActionLink("Back to previous page", null, null, null, new { href = Request.UrlReferrer}) 

Można użyć action w controller też. Zobacz odpowiedzi na podobne pytanie here

6

Jeśli nie chcesz używać ActionLink lub JavaScript, href="@Request.UrlReferrer" rade:

<div> 
    <a href="@Request.UrlReferrer" class="btn btn-default btn-lg" title="Back to list"> 
     <span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> 
    </a> 
</div> 
+0

Brilliant. Najlepsza odpowiedź tutaj IMO. Prosty. Brak wbudowanego JS lub dziwnie wyglądającego 'ActionLink'. – Jess

Powiązane problemy