21

我在 asp .net 中有一个页面(http://localhost/error/pagenotfound).

页面中有一个链接,单击该链接必须返回到我来自的上一页。

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

如何从历史记录中返回上一页

4

9 回答 9

37

你可以使用这个:

<a href='javascript:history.go(-1)'>Go Back to Previous Page</a>
于 2012-12-26T08:27:45.210 回答
31

如果您使用的是 asp.net,请记住

javascript:history.go(-1)

window.history.back()

两者都将带您返回页面。
但前一页不会完全是前一页。

例如

假设您在页面上并且 当您单击按钮时Default.aspx有一个现在,并且在这种情况下您又回到了上一页仍然是您的 Default.aspxasp:button
Default.aspx

再举一个例子
, 您有两个页面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);
 }
于 2012-12-26T09:02:49.887 回答
9

转到上一页

第一种方法

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

第二种方法

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

如果我们想多退一步然后增加

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........
于 2013-06-03T10:57:09.240 回答
7

使用此代码

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

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

    </body>
    </html>
于 2012-12-26T08:37:37.117 回答
4

我找到了这个例子

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

只需将此页面放在您的页面上,它就可以正常工作。

于 2014-03-27T12:28:33.883 回答
2

您应该添加一个关于 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/>");
}

这是关于使用按钮转到上一页,您可以根据您的更改进行修改。

于 2012-12-26T09:11:10.823 回答
0

我整个周末都在看这个,但没有找到我想要的答案。问题是,在回发 history.go(-1); 之后 不会回到您想去的地方 - 即让您到达那里的页面(进行任何更改)。

使用 Request.UrlReferrer.ToString(); 将重新加载您要返回的页面,您可能和我一样,不想丢失对页面所做的任何更改。在 2013 年的 Rizwan Gill 上方,您找到了您想要返回 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>
于 2017-07-24T13:11:21.397 回答
0

以शेखर为例

我建议执行以下操作,并在回发时避免 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);

这将始终保存您来自的 PAGE。

希望能帮助到你。

于 2018-06-12T20:59:56.347 回答
0

在您的 C# 代码中,只需编写以下代码:

Response.Write("<script>history.go(-1);</script>");
于 2020-02-05T12:53:02.657 回答