web-dev-qa-db-ja.com

asp .netの前のページに戻るハイパーリンク

Asp .netにページがあります(http://localhost/error/pagenotfound).

ページにリンクがあり、クリックすると、元のページから前のページに戻る必要があります。

<a href="#">Go Back to Previous Page.</a> 

履歴から取得して前のページに戻るにはどうすればよいですか

17
user1400915

これを使用できます:

<a href='javascript:history.go(-1)'>Go Back to Previous Page</a>
30
kleinohad

Asp.netを使用している場合は、それを覚えておいてください

javascript:history.go(-1)

そして

window.history.back()

両方とも、ページを戻すことができます。
ただし、前のページは正確に前のページではありません。

例えば

あなたがDefault.aspxページにいて、asp:buttonがあるとします
ボタンをクリックしてDefault.aspxに戻ると、
この状況では、前のページはまだDefault.aspxです

別の例を取り上げる
2つのページDefault1.aspxDefault2.aspxがあります
条件1:-Default1.aspxをクリックしてDefault2.aspxにリダイレクトします
OK前のページはDefault1.aspxです
条件2:-ボタンはDefault1.aspxをクリックして、同じDefault1.aspxページにポストバックします
前のページはまだDefault1.aspxです


編集

 protected void Page_Load(object sender, EventArgs e)
 {
     if( !IsPostBack )
     {
        ViewState["RefUrl"] = Request.UrlReferrer.ToString();
     }
  }

次のようにバックボタンでこれを使用します

 protected void Button3_Click(object sender, EventArgs e)
 {
      object refUrl = ViewState["RefUrl"];
      if (refUrl != null)
          Response.Redirect((string)refUrl);
 }
23
शेखर

前のページに移動する場合

最初の方法

<a href="javascript: history.go(-1)">Go Back</a>

2番目の方法

<a href="##" onClick="history.go(-1); return false;">Go back</a> 

1つ以上のステップに戻りたい場合は、増やす

For going 2 steps back history.go(-2)
For going 3 steps back history.go(-3)
For going 4 steps back history.go(-4)
and so on........
7
Rizwan Gill

このコードを使用

    <html>
    <head>
    <script>
    function goBack()
      {
      window.history.back()
      }
    </script>
    </head>
    <body>

    <a href="#" onclick="goBack()">Back</a>

    </body>
    </html>
7
Manish Nagar

この例を見つけました

<input type="button" value=" &lt;-- BACK " onclick="history.go(-1);return false;">

これをページに置くだけで、動作します。

4
alphan

次のようなonclickについての属性を追加する必要があります。

protected void Page_Load(object sender, EventArgs e)
{
    yourButton.Attributes.Add("onClick", "javascript:history.back(); return false;");
}

protected void yourButtonClick(object sender, EventArgs e)
{
      Response.Write("Stackoverflow <br/>");
}

これはボタンを使用して前のページに移動することに関するもので、変更に応じて変更できます。

2
Stack User

शेखरの例に従って

次のことを行い、ポストバック中にURLのサイクルを避けることをお勧めします。

string from = Request.UrlReferrer.ToString();
string here = Request.Url.AbsoluteUri.ToString();

if(from != here)
    Session["page"] = Request.UrlReferrer.ToString();

ボタンをクリックして

object refUrl = Session["page"];
if (refUrl != null)
    Response.Redirect((string)refUrl);

これにより、常に元のページが保存されます。

それが役に立てば幸い。

0
Brian Santacruz

私は週末ずっとこれを見ていましたが、探していた答えが見つかりませんでした。問題は、ポストバックhistory.go(-1)の後です。あなたが行きたい場所、つまりそこに行ったページ(変更が加えられた)には戻りません。

Request.UrlReferrer.ToString();を使用するあなたが戻っているページをリロードします。あなたは私のようで、ページに加えられた変更を失いたくないかもしれません。 Rizwan Gillの上では、2013年に2、3、または4ページ戻りたいとの答えが出ましたが、彼はそれを行う良い方法を提供しませんでした。

これを行う最良の方法は、呼び出しページを書いている場合に呼び出されるときにページにポップアップモーダルを実際に使用することですが、この方法でやりたい場合は、それぞれを覚えておく必要がありますポストバックしてカウントします。

したがって、(。aspxファイルの)隠しフィールドから始めます。

    <asp:hiddenfield id="fldPostbackCount"
        value="0" 
        runat="server"/>

次に、ポストバックごとに値を増やします(.aspx.vbファイル内):

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        fldPostbackCount.Value = 1
    Else
        fldPostbackCount.Value = Int32.Parse(fldPostbackCount.Value) + 1
    End If

End Sub  '  Page_Load() 

(私は.csの人々がこれでCへの変換を処理できると確信しています)

.aspxファイルに戻ると、履歴ボタンが必要です。

    <a href="javascript:history.go(-<%: fldPostbackCount.Value %>)" title="Back to Previous Page">Back to Previous Page</a>
0
Mark Ludwinski