超链接返回到asp .net的上一页
本文关键字:一页 net asp 返回 超链接 | 更新日期: 2023-09-27 17:49:36
我有一个网页在asp .net (http://localhost/error/pagenotfound).
在页面中有一个链接,点击它必须从我来的地方回到上一页。
<a href="#">Go Back to Previous Page.</a>
如何从历史记录返回到上一页
你可以这样做:
<a href='javascript:history.go(-1)'>Go Back to Previous Page</a>
如果您使用的是asp.net,那么请记住
javascript:history.go(-1)
和
window.history.back()
都将带您到最后一页。
但是上一页并不完全是上一页。
假设你在Default.aspx
页,有一个asp:button
现在,当你点击按钮,你又回到了Default.aspx
在这种情况下,您的上一个页面仍然是您的Default.aspx
再举一个例子
你有两页Default1.aspx
和Default2.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);
}
For转到上一页
第一个方法
<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........
使用此代码
<html>
<head>
<script>
function goBack()
{
window.history.back()
}
</script>
</head>
<body>
<a href="#" onclick="goBack()">Back</a>
</body>
</html>
我发现了这个例子
<input type="button" value=" <-- BACK " onclick="history.go(-1);return false;">
把这个放在你的页面,它正在工作
你应该像下面这样添加一个关于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/>");
}
这是关于使用一个按钮跳转到下一页,你可以根据你的变化修改它。
以शेखर
为例我建议这样做,并避免在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);
这将始终保存您的页面。
希望能有所帮助。
我整个周末都在看这个,还没有找到我想要的答案。问题是,在回发历史记录之后。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>
在你的c#代码中这样写:
Response.Write("<script>history.go(-1);</script>");