如何知道我们从另一个页面重定向后来到一个页面

时间:2010-08-04 12:16:48

标签: asp.net master-pages

我使用单个页面用于两个不同的目的。默认情况下,它有一个行为,并在通过链接按钮重定向后进入同一页面时,它具有不同的行为,如更改母版页等...

如何检测到这一点并相应地改变行为?

5 个答案:

答案 0 :(得分:1)

您可以通过标题中的referer字段了解您来自哪个页面。在asp.net中,您可以像这样检索它:

string MyReferrer;

if(Request.UrReferrer != null)
{
    MyReferrer = Request.UrlReferrer.ToString();
}

答案 1 :(得分:1)

答案 2 :(得分:1)

如果你有一个页面有两个不同的行为,那么我建议你想要一个类似querystring参数的东西来区分这两个目的(例如somepage.aspx?mode = changeMaster)。然后,您可以检查此值并相应地更改您的行为。

如果您只是从一个地方进行第二次行为,那么最简单的方法就是让它具有默认行为而不是需要mode参数(这样您就不必更改所有指向页面的链接,只需一个链接按钮)。这应该比依赖引用者和其他并非总是发送的东西更可靠。

答案 3 :(得分:0)

我不知道asp.net但我非常害羞你可以从HTTP-headers referer / referrer 字段中获取它。

http://en.wikipedia.org/wiki/HTTP_referrer

答案 4 :(得分:0)

假设您可以控制用户重定向的页面,请在执行页面应基于其行为的操作时设置Session变量。

例如,在LinkButton_Click事件中,您可以像这样设置Session变量:

protected void LinkButton_Click(object sender, EventArgs e)
{
    Session["Source"] = "MyLinkButton";
}

在您网页的Page_LoadPage_Init事件中,检查该Session变量的值,并根据Session变量中的值执行网页的行为更改

protected void Page_Init(object sender, EventArgs e)
{
    if (Session["Source"] == "MyLinkButton")
    {
        // do something
    }
    else if (Session["Source"] == "SomethingElse")
    {
        // dome something else
    }
}