web-dev-qa-db-fra.com

sur html.actionlink, cliquez sur aller à la page précédente

Actuellement dans un lien

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

J'ai le code suivant pour la vue

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

ce qui m'amène à ce lien

customer/businessunit/index

mais plutôt que pour aller à la page d'index, je veux aller à la page précédente lorsque le lien d'action est cliqué, ce qui est

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

Comment créer un lien d'action qui me dirige vers la page précédente? quelque chose comme @Html.ActionLink("Back to Details", //go to previous page)

31
Cybercop

À moins que vous ne suiviez la page précédente sur le serveur, pourquoi ne pas simplement utiliser l'historique interne du navigateur? Dans ce cas, il n'y aurait pas besoin de code côté serveur. Vous pouvez simplement utiliser quelque chose comme ceci:

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

Ou, en séparant le code du balisage:

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

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

Cela renverrait l'utilisateur à la dernière page de l'historique de son navigateur. (Bien sûr, s'ils atteignaient cette page à partir d'une autre source, cela ne les ramènerait pas "aux détails", mais plutôt "en arrière".)

66
David

Si vous voulez toujours utiliser ActionLink vous pouvez faire quelque chose comme suggéré par JuanPieterse

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

Vous pouvez également utiliser action dans controller. Voir les réponses à une question similaire ici

38
AIM

N'utilisez pas ActionLink pour cela ... faites simplement:

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

... qui ramènera l'utilisateur là où il était avant la page actuelle

12
Robert Levy

Si vous n'aimez pas utiliser ActionLink ou JavaScript, le href="@Request.UrlReferrer" fera l'affaire:

<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>
10
Stacked

C'est un peu après le fait, mais j'ai pensé que j'allais contribuer. Personnellement, je baliserais mes éléments de balisage avec une classe CSS pour pouvoir simplement réutiliser la balise et en finir avec elle.

Balisage:

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

Scénario:

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