2013-08-27 13 views
23

Attualmente in un collegamentosu Html.ActionLink Fare clic su Vai alla pagina precedente

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

Ho seguente codice per la vista

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

che mi porta a questo link

customer/businessunit/index 

ma piuttosto che andare alla pagina indice Voglio andare alla pagina precedente quando il link di azione è s cliccato, che è

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

Come si crea un collegamento di azione che mi indirizza alla pagina precedente? qualcosa come @Html.ActionLink("Back to Details", //go to previous page)

+0

Eventuali duplicati di [tasto ActionLink indietro] (http: // StackOverflow. it/questions/4686124/actionlink-back-button) – rogerdeuce

risposta

47

A meno che non stiate monitorando quale sia la pagina precedente sul server, perché non usare solo la cronologia interna del browser? In quel caso non ci sarebbe bisogno di un codice lato server. Si potrebbe utilizzare qualcosa di simile:

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

Oppure, che separa il codice dal markup:

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

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

Questo avrebbe mandato l'utente alla ciò che era l'ultima pagina nella loro cronologia del browser. (Naturalmente, se hanno raggiunto quella pagina da qualsiasi altra fonte, non li prenderebbero "indietro ai dettagli", ma semplicemente "indietro".)

+1

Non è giusto se hai postato in dettaglio la pagina – Emanuele

9

Non utilizzare ActionLink per questo ... basta fare:

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

... che avrà l'utente alla ovunque essi erano prima della pagina corrente

1

Questo è un po 'dopo il fatto, ma pensavo di 'd contribuire. Personalmente, avrei taggato i miei elementi di markup con una classe CSS, così ho potuto riutilizzare il tag e averlo fatto.

Markup:

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

Script:

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

Se si desidera continuare a utilizzare ActionLink si può fare qualcosa di simile, come suggerito dal JuanPieterse

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

È possibile utilizzare action in controller anche. Vedere risposte a domanda simile here

6

Se non si desidera utilizzare ActionLink o JavaScript, il href="@Request.UrlReferrer" farà il trucco:

<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

Brillante. La migliore risposta qui IMO. Semplice. Nessun JS in linea o 'ActionLink' dall'aspetto strano. – Jess

Problemi correlati