ASP.NET 中 “返回上一頁”,“上一步”的實現方法

來源:互聯網
上載者:User
文章目錄
  • 方法四
  • 總結
  我們網站建設時,經常會用到返回操作。今天萬廣就總結下在ASP.NET網站開發中常用的方法。萬廣互聯不但是提供優質的網站建設服務,還提供大量的建站技術,把更多的經驗分享給大家。也希望大家能夠支援我們,關注我們!

 

方法一:

<input type="button onclick="javascript:window.history.go(-1);"value="返回上一頁">

方法二

在button的onClick事件響應函數中寫如下代碼:

This.ClientScript.RegisterClientScriptBlock(this.GetType(), "e", "<script language=javascript>history.go(-2);</script>", true);

剖析

假設當前頁面為A,上一頁為B,則當A中的button被按下後,A頁面會立即被回傳到伺服器進行處理,伺服器端向A頁面中添加了我們寫的那個script塊。

我們感到按鈕被按下之後,頁面重新整理了一下,然後我們看到的已不是頁面A了,而是全新的A+頁面,A+比A多了一個script塊。

瀏覽器解析A+頁面過程中遇到了script塊,就執行javascript語句,執行到history.go(-2)時就連著退後兩步。先從A+頁面退到A頁面,再從A頁面退到B頁面。

於是就完成了整個回退過程。

 

方法一中之所以只回退一步,是因為它的button沒有runat="server"屬性,所以按鈕被按下之後並不回傳到伺服器,於是只回退一步,就從A回到B了。

方法三

在page_load中加入

if(!IsPostBack)

        ViewState["retu"]=Request.UrlReferrer.ToString();  

 

而在返回按鈕事件中

if(ViewState["retu"]!=null){

       Response.Redirect(ViewState["retu"].ToString());    

}

else

{

      Response.write("對不起,當前是最前頁碼“);

}

注意:

在使用Request.UrlReferrer時:

1. 如果上一頁面使用document.location方法導航到當前頁面,Request.UrlReferrer返回空值

2. 如果有A,B兩個頁面,在瀏覽器中直接請求A頁面,在A頁面的中Page_Load事件中導航到B頁面,則Request.UrlReferrer返回空。因為在Page_load事件中頁面還未初始化,所以無法記錄當前頁的資訊,導航到B頁面也就無法獲得上一頁面的資訊。

3. 點擊重新整理按鈕不會改變Request.UrlReferrer

方法四

<a href=<%=request.servervariable.GetValues("http_Referre")%>上一頁</a>

總結

方法1、2是通過javascript通知瀏覽器回到上一頁,瀏覽器將調出本機快取中的上一頁資料,所以回到上一頁後,表單資料還被保留著。

而方法3、4則是通過在本頁記錄下上一頁的url,然後在你點擊“上一頁”按鈕時重新向伺服器發出http請求,再次請求這個url,所以你得到的“上一頁”將是全新的頁面,以前填寫的表單資料都沒有了。

因此在做返回事件時,應該考慮你返回上一頁後的頁面需不需要重新整理頁面,再選擇對應的方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.