web-dev-qa-db-ja.com

html.actionlinkをクリックして前のページに移動します

現在リンク中

_Customer/businessunit/RepresentativeDetails?RepresentativeId=cd3a7263-78f7-41bd-9eb0-12b30bc1059a_

私は次のコードを表示します

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

このリンクに移動します

_customer/businessunit/index
_

むしろ、ページのインデックスを作成するのではなく、アクションリンクがクリックされたときに前のページに移動したい

_Customer/businessunit/BusinessUnitDetails/c4a86253-a287-441e-b83d-71fbb6a588bc
_

前のページに移動するアクションリンクを作成するにはどうすればよいですか? @Html.ActionLink("Back to Details", //go to previous page)のようなもの

31
Cybercop

前のページがサーバー上にあるものを追跡していない限り、ブラウザの内部履歴を使用するだけではどうですか?その場合、サーバー側のコードは必要ありません。次のようなものを使用できます。

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

または、コードをマークアップから分離します。

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

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

これにより、ユーザーはブラウザ履歴の最後のページに戻ります。 (もちろん、他のソースからそのページにアクセスした場合、「詳細に戻る」のではなく、「戻る」だけです。)

66
David

それでもActionLinkを使用したい場合は、 JuanPieterse

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

actionでもcontrollerを使用できます。同様の質問への回答をご覧ください こちら

38
AIM

これにはActionLinkを使用しないでください...

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

...現在のページの前にいた場所にユーザーを戻します

12
Robert Levy

ActionLinkまたはJavaScriptを使用したくない場合は、href="@Request.UrlReferrer"トリックを行います:

<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

これは事実の後かなりですが、私は貢献すると思いました。個人的には、マークアップ要素にCSSクラスをタグ付けするので、タグを再利用するだけで済みます。

マークアップ:

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

スクリプト:

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