2010-08-04 82 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 
    } 
} 
相關問題