2010-08-04 87 views
0

重定向我使用的是单页两种不同的目的后。默认情况下,它有一个行为,在即将同一页面通过链接按钮,它有不同的行为,如更改母版页等重定向后...如何知道我们来到一个页面从另一个页面

我怎么可以检测到这一点,并相应地改变行为?

回答

1

如果你有两个不同的行为一页,然后我会建议你想要的东西就像一个查询字符串参数到两个目的之间进行区分(例如SomePage.aspx页面?模式= changeMaster)。然后你可以检查这个值并相应地改变你的行为。

如果你只是每个人都从一个地方做第二个行为,那么它可能最容易让它有一个默认行为,而不需要mode参数(所以你不必改变你的所有链接到页面,只是那一个linkbutton)。这应该是很多不是依靠引荐等这样的事情并不总是发送更可靠。

0

我不知道聊天室,但我很舒服,你可以从HTTP头引用/引荐者字段。

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

+0

如果它是来自同一网页的,这是行不通的,除非只有一个在页面的“自我重定向”或没有后背上给搅浑水的链接。检查引用链接并拥有两个单独的页面将是最简单的解决方案! – Rob 2010-08-04 12:21:17

1

你可以知道你来自哪里,用自带的头引荐字段的页面。在asp.net可以检索它像这样:

string MyReferrer; 

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

如果Request.UrlReferrer为null,它会抛出异常。 – rochal 2010-08-04 12:23:47

+0

谢谢,我编辑它检索引用之前检查出来。 – 2010-08-04 12:54:17

0

假设你有超过一个用户重定向到从页面控制,设置Session变量,当你执行一个动作,你的页面应该基于它的行为。

例如,在一个LinkButton_Click事件,你可以设置一个会话变量,像这样:

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 
    } 
} 
相关问题