Asp.net 获取响应后的上一页URL。重定向

Asp.net 获取响应后的上一页URL。重定向,asp.net,session,response.redirect,Asp.net,Session,Response.redirect,在我写了一封回复信之后,我试图获取上一页的URL,我已经浏览了整个网页,人们都在使用HTTP\u REFERER,但这对回复不起作用。重定向。那么,是否仍然可以获取上一页的URL 我在几页上有这个代码,我需要知道当它到达servererror/default.aspx页面时它来自哪个页面 Response.Redirect("servererror/default.aspx?404") 在我的servererror/default.aspx页面上,我正试图获取上一个页面的URL,并将其放入会

在我写了一封回复信之后,我试图获取上一页的URL,我已经浏览了整个网页,人们都在使用
HTTP\u REFERER
,但这对回复不起作用。重定向。那么,是否仍然可以获取上一页的URL

我在几页上有这个代码,我需要知道当它到达
servererror/default.aspx
页面时它来自哪个页面

 Response.Redirect("servererror/default.aspx?404")
在我的
servererror/default.aspx
页面上,我正试图获取上一个页面的URL,并将其放入会话
Session(“ErrorPage”)

谢谢

杰米

更新

我现在可以这样工作了

Response.Redirect("server-error.aspx?404&" & Request.Url.ToString())
它将带有错误的页面的URL传递到下一个页面,然后我从查询字符串中获取该URL

谢谢


Jamie

您可以尝试server.transfer,以查看它是否填充了HTTP\u REFERER值。

您可以将上一页的URL传递到错误页的URL。差不多

Response.Redirect(“servererror/default.aspx?404&url=/folder/page.aspx”)


然后获取错误页面上的url值,并将其重定向到上一页。

记住响应。重定向正在执行:它向客户端发出302“find”。此响应代码表示您正在查找的内容不在您请求的位置,而是在其他位置

鉴于这一信息;发出响应的页面。重定向实际上根本不是“推荐人”。这就是为什么引用该页面的页面仍然报告为引用页面


正如rauts在上面提到的,你应该在URL字符串中包含你重定向到你需要的任何额外信息,例如当前页面的URL,我知道这是一篇老文章,即使是发布这个问题的人也找到了一些解决问题的方法。。。。。。。。。。。。。但昨天深夜,我也面临着同样的困难,所以我提出了一个解决方案,正在处理我的案件

我有两个页面Page1.aspx和Page2.aspx我在Page1.aspx上有一个按钮1和按钮2现在当我重定向到Page2.aspx时,情况是什么我想访问Page1.aspx控件,称为上一页。。。。。所以我使用了一个按钮的PostBackURL,但在这种情况下,我没有得到CodeBehind上的点击事件。。。。。。。。。那么我应该如何解决这个问题。。。。。。。。。。。。。我所做的是设置Button2.PostBackURL=“Page2.aspx”,当Button1 Click事件触发时,我注册了调用Button2.Click事件的启动脚本,因此现在我得到了上一页控件

这是代码。。。。。如果有人在寻找相同的功能。。。。。。。。。。。。在某种意义上,他们会得到帮助

Aspx代码

<asp:Button ID="btnSave" runat="server" Style="font-weight: 700" Text="Save" 
    onclick="btnSave_Click" />

代码隐藏

    protected void btnSave_Click(object sender, EventArgs e){
    try
    {
        StringBuilder objStringBuilder = new StringBuilder();
        objStringBuilder.AppendLine("<script type='text/javascript' language='javascript'>");
        objStringBuilder.AppendLine("document.getElementById('" + btnHidden.ClientID + "').click();");
        objStringBuilder.AppendLine("</script>");

        ClientScript.RegisterStartupScript(Page.GetType(),"Key1", objStringBuilder.ToString());
    }
    catch (Exception ex)
    {
        throw ex;
    }}
protectedvoidbtnsave\u单击(对象发送方,事件参数e){
尝试
{
StringBuilder objStringBuilder=新StringBuilder();
objStringBuilder.AppendLine(“”);
objStringBuilder.AppendLine(“document.getElementById(“+btnhiden.ClientID+”)。单击();”;
objStringBuilder.AppendLine(“”);
RegisterStartupScript(Page.GetType(),“Key1”,objStringBuilder.ToString());
}
捕获(例外情况除外)
{
掷骰子;
}}

关于,

这不会填充REFERER字段,但我相信它会填充ClientFilePath,因为这是他们最初请求的,然后您将其传输。这是最好的解决方案,这是大多数网站采取的方法。特别是HTTP\U REFERER可能会在浏览器中被屏蔽(隐私)我修改了您的建议以做出此响应。重定向(“server error.aspx?404&“&Request.Url.ToString())和它的工作原理感谢在aspx页面中处理服务器错误是一种非常非常糟糕的做法,请改用htm(l)页面。