超链接回到asp .net的上一页

时间:2012-12-26 08:22:49

标签: c# asp.net .net asp.net-mvc asp.net-mvc-3

我在asp .net (http://localhost/error/pagenotfound).

中有一个页面

页面上有一个链接,点击后必须返回我来自的上一页。

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

如何从历史记录

返回上一页

9 个答案:

答案 0 :(得分:29)

你可以用这个:

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

答案 1 :(得分:22)

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

javascript:history.go(-1)

window.history.back()

两者都会带你回到页面。
但上一页不会完全是上一页。

例如

假设您在页面Default.aspx上,并且有一个asp:button 现在,当您点击按钮并返回Default.aspx在这种情况下,您的上一页仍然是Default.aspx

再考虑一下 您有两页Default1.aspxDefault2.aspx
条件1 : - 点击Default1.aspx上的按钮,将您重定向到Default2.aspx
     好的,你的上一页是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);
 }

答案 2 :(得分:7)

使用此代码

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

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

    </body>
    </html>

答案 3 :(得分:7)

转到上一页

第一种方法

<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........

答案 4 :(得分:4)

我找到了这个例子

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

只需把它放在你的页面上,就可以了。

答案 5 :(得分: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/>");
}

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

答案 6 :(得分:0)

我整个周末一直在看这个,但没有找到我想要的答案。问题是,在回发history.go(-1)之后;不会回到你想去的地方 - 也就是说,那里有你的页面(做了任何改动)。

使用Request.UrlReferrer.ToString();将重新加载您要返回的页面,您可能会像我一样,不想丢失对页面所做的任何更改。 2013年Rizwan Gill上面的答案是你要回2,3或4页,但他没有给出好的方法。

实现此目的的最佳方法实际上是在您调用页面时使用弹出模式,如果您正在编写调用页面,但如果您想这样做并且有一个后退按钮,那么您将拥有该模式记住每个回发并计算它们。

所以,从您的隐藏字段(在.aspx文件中)开始:

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() 

然后使用每个回发(在.aspx.vb文件中)增加值:

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

(我确定.cs人可以在此处理到C转换)

现在回到你的.aspx文件,你必须有一个历史记录按钮:

$(document).ready(function(){
  $(".menu-button").click(function(){
    $(".menu-bar").toggleClass( "open" );
  })
})

答案 7 :(得分:0)

以शेखर

为例

我建议执行以下操作,并在回发时避免在网址上进行任何循环。

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。

希望它有所帮助。

答案 8 :(得分:0)

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

Response.Write("<script>history.go(-1);</script>");