明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用Session記錄頁(yè)面地址與完成頁(yè)面返回技巧

[摘要]在開發(fā)過(guò)程中為了滿足客戶的要求要實(shí)現(xiàn)這樣一個(gè)功能:在A頁(yè)面內(nèi)點(diǎn)擊一個(gè)文字連接后進(jìn)入C頁(yè)面,在點(diǎn)擊返回按鈕后可以返回A頁(yè)面,而在B頁(yè)面也有該文字連接,點(diǎn)擊后進(jìn)入C頁(yè)面,返回時(shí)則返回B頁(yè)面(C頁(yè)面內(nèi)只能有一個(gè)返回按鈕).為此想到了使用Session功能,就是向C頁(yè)面跳轉(zhuǎn)時(shí)記錄下是從哪個(gè)頁(yè)面跳過(guò)來(lái)的,然...

    在開發(fā)過(guò)程中為了滿足客戶的要求要實(shí)現(xiàn)這樣一個(gè)功能:在A頁(yè)面內(nèi)點(diǎn)擊一個(gè)文字連接后進(jìn)入C頁(yè)面,在點(diǎn)擊返回按鈕后可以返回A頁(yè)面,而在B頁(yè)面也有該文字連接,點(diǎn)擊后進(jìn)入C頁(yè)面,返回時(shí)則返回B頁(yè)面(C頁(yè)面內(nèi)只能有一個(gè)返回按鈕).為此想到了使用Session功能,就是向C頁(yè)面跳轉(zhuǎn)時(shí)記錄下是從哪個(gè)頁(yè)面跳過(guò)來(lái)的,然后點(diǎn)擊返回按鈕時(shí)對(duì)session的內(nèi)容進(jìn)行判斷,從而決定是返回A頁(yè)面還是B頁(yè)面.

  首先在A,B兩個(gè)頁(yè)面內(nèi)要加入取得頁(yè)面路徑的代碼

  string url=Request.CurrentExecutionFilePath.ToString();

//獲得當(dāng)前頁(yè)面的虛擬路徑

    Session[“URL”]=url;

  Response.Redirect("C.aspx",true);

在C頁(yè)面內(nèi)首先通過(guò)session獲得上個(gè)頁(yè)面的虛擬路徑

string url=Session["URL"].ToString();

由于A.B兩個(gè)頁(yè)面的虛擬路徑前半部分相同,實(shí)際上我們只要判斷是“A.aspx”還是“B.aspx”就行了.因此先借助split方法取得我們想要的頁(yè)面名稱,然后可以將名稱賦給一個(gè)label,在頁(yè)面內(nèi)隱藏掉這個(gè)label(此處是否需要使用Lable來(lái)保存頁(yè)面名稱可以根據(jù)情況而定).

string[] split=url.Split(new char[] {'/'});

int n=split.Length;

string pathname=split[n-1];

Label1.Text=pathname;

最后在返回按鈕的響應(yīng)事件中進(jìn)行判斷,決定返回哪個(gè)頁(yè)面:

if (Label1.Text=="A.aspx")

           Response.Redirect("A.aspx",true);

         else

           Response.Redirect("B.aspx",true);