在我的'a.aspx'的'Page_init()'中说我只有'server.transferrequest(“b.aspx”)。
这很好用,显示“b.aspx”的内容,而browserurl仍然停留在“a.aspx”。
快乐的日子。
然而,是否有人知道如何从我的“b.aspx”(结果页面)中查看此网址?。
通常的request.rawurl和request.url.absoluteuri都将当前页面返回为“b.aspx”。
答案 0 :(得分:2)
Server.TransferRequest
执行指定URL的异步执行。这意味着您的客户端不知道服务器上发生了什么,所以从客户端的角度看它是同一页面。
如果您需要更改实际页面(最常见的页面),请使用Response.Redirect
。
答案 1 :(得分:1)
也许在您进行转移之前,您可以在某处保存所需的信息,然后在需要时再次检索。
答案 2 :(得分:1)
您可以使用PreviousPage获取进行服务器传输的源页面:
string previousPagesUrl = PreviousPage.Request.RawUrl;
编辑: @maxp,作为对您评论的回答,PreviousPage仅适用于Server.Transfer和跨页回发。
如果出现上一页,您将获得 null :
答案 3 :(得分:0)
您是否尝试过此方法:
public void Transfer(string path, bool preserveForm )
http://msdn.microsoft.com/en-us/library/caxa892w.aspx
我目前遇到了同样的问题,我发现Server对象在传输方法上有这个参数,可以保存原始请求表单。
答案 4 :(得分:0)
NameValueCollection headers = new NameValueCollection();
headers["RawUrl"] = HttpContext.Current.Request.RawUrl;
Server.TransferRequest("b.aspx", true, null, headers);
然后在Headers["RawUrl"]
中使用b.aspx
。