簡體   English   中英

如何檢測是否按下了刷新按鈕(F5)

[英]How to detect if Refresh button(F5) is pressed

我有以下代碼

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           //do something 
        }
        else
        {
            // do something else
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        //do something       
    }
}

關鍵是,如果我按F5 /刷新按鈕或單擊按鈕,則會發生回發。 如果單擊F5 /刷新按鈕,如何防止代碼執行任何操作?

我已經檢查了檢測F5是否被按下並刷新,但是我的解決方案會有所不同,因為我需要在C#代碼中執行此操作。

謝謝

您正在嘗試在客戶端上捕獲某些內容-因此它必須是客戶端腳本(如鏈接中所述)。

從ASP.Net來講,這不是回發 -只是再次請求您的頁面(GET)。 您無法停止它-就像進入網站上的其他頁面並單擊某些導航返回一樣。

如果您說要阻止某種類型的服務器端代碼運行(超過x次),則可以考慮會話或cookie並在運行任何進程之前先讀取它們。 一個簡單的示例:

  • 訪問第1頁-設置標識第1頁進程已運行的會話或cookie
  • 訪問第2頁-設置會話或cookie,以標識第2頁的進程已運行
  • 返回第1頁-檢查會話或cookie變量是否存在,如果存在,則不要運行第1頁進程。

如果可行,另一種選擇是使用ASP.Net緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM