簡體   English   中英

如何停止刷新頁面刷新事件

[英]How to stop from refiring an event on a page refresh

當用戶單擊“提交”按鈕時,我將表單數據插入數據庫中。 問題在於,在原始提交后,如果用戶刷新頁面,則表單數據將被重新提交,並因此第二次插入數據庫。 我怎樣才能解決這個問題?

嘗試(在事件處理功能中)詢問發送者。

在處理您的請求后,從服務器端提交按鈕事件提供Response.Redirect(“ yourpage”)

使用適當的機制來檢測重復發布。 我更喜歡使用以下內容來檢測基礎請求是否已加倍發布。

private bool refreshState;
private bool isDoublePosted;

protected bool IsInDoublePosting
{
    get 
    {
        return isDoublePosted;
    }
}

protected override void LoadViewState(object savedState)
{
    object[] states = (object[])savedState;
    base.LoadViewState(states[0]);
    refreshState = Convert.ToBoolean(states[1]);
    isDoublePosted = (refreshState == Convert.ToBoolean(Session["IsInDoublePosting"]));
}

protected override object SaveViewState()
{
    Session["IsInDoublePosting"] = refreshState;
    object[] states = new object[3];
    states[0] = base.SaveViewState();
    states[1] = !refreshState;
    return states;
}

在您的按鈕中單擊事件處理程序:

    if (!this.IsInDoublePosting)
    { 
        // your code goes here
    }

暫無
暫無

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

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