如何检查页面是否从上一页重定向或不在asp.net中

时间:2012-01-12 11:47:07

标签: c# asp.net

在第1页的按钮上单击我使用msgid将页面重定向到第2页,在第2页的页面加载中我检查上一页是否有效。所以我检查(this.Page.PreviousPage != null)但是这总是为空,页面被重定向到第1页。我这样做是为了没有人可以更改网址中的msgid。我该如何解决这个问题。感谢

第1页:

  int msgid = Convert.ToInt32(Hidden_MsgID.Value);
    string url = "Page2.aspx?MsgID=" + msgid;
    Response.Redirect(url);      

2页:

if (this.Page.PreviousPage != null)
                {
                }
                else
                {
                    Response.Redirect("Page1.aspx");
                }

而不是response.redirect我使用了服务器。转移,它的工作原理     Server.Transfer(string.Format(“ResponseMetric.aspx?MsgID = {0}”,msgid));

2 个答案:

答案 0 :(得分:10)

PreviousPage仅适用于Server.Transfer和/或跨页面发布:http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx

可用解决方案的元素here:使用this.Request.UrlReferrer

答案 1 :(得分:1)

也许您可以使用会话变量来检查是否也遵循流程。 在重定向之前,您可以设置

Session["PREVPAGE"] = "fooo.aspx";

并在第二页的页面加载中检索它。