在開發過程中為了滿足客戶的要求要實現這樣一個功能:在A頁面內點擊一個文字連接後進入C頁面,在點擊返回按鈕後可以返回A頁面,而在B頁面也有該文字連接,點擊後進入C頁面,返回時則返回B頁面(C頁面內只能有一個返回按鈕).為此想到了使用session功能,就是向C頁面跳轉時記錄下是從哪個頁面跳過來的,然後點擊返回按鈕時對session的內容進行判斷,從而決定是返回A頁面還是B頁面.
首先在A,B兩個頁面內要加入取得頁面路徑的代碼
string url=Request.CurrentExecutionFilePath.ToString();
//獲得當前頁面的虛擬路徑
Session[“URL”]=url;
Response.Redirect("C.ASPx",true);
在C頁面內首先通過session獲得上個頁面的虛擬路徑
string url=Session["URL"].ToString();
由於A.B兩個頁面的虛擬路徑前半部分相同,實際上我們只要判斷是“A.aspx”還是“B.ASPx”就行了.因此先借助split方法取得我們想要的頁面名稱,然後可以將名稱賦給一個label,在頁面內隱藏掉這個label(此處是否需要使用Lable來保存頁面名稱可以根據情況而定).
string[] split=url.Split(new char[] {'/'});
int n=split.Length;
string pathname=split[n-1];
Label1.Text=pathname;
最後在返回按鈕的響應事件中進行判斷,決定返回哪個頁面:
if (Label1.Text=="A.ASPx")
Response.Redirect("A.ASPx",true);
else
Response.Redirect("B.ASPx",true);