簡體   English   中英

在刷新 web 頁面時,再次觸發 Button1_Click 事件

[英]On hitting refresh of the web page , Button1_Click event is fired again

我有一個簡單的網絡表單,其中包含很少的文本字段、標簽和提交按鈕。 當我單擊提交按鈕時,會觸發 button1 事件並提交數據。

但讓我擔心的是,當我立即提交數據后刷新頁面時,我得到以下錯誤:

在此處輸入圖像描述

當我看到數據庫檢查條目時,存在重復條目。

我不明白為什么即使在我點擊刷新並且我無法點擊 Button1 時按鈕點擊也會被觸發。

以及如何避免這種情況發生。

這里發生了什么:然后刷新頁面,瀏覽器發送與之前發送的請求完全相同的請求,因為您發布了它發送 POST 到服務器的表單。 一般來說,同一個表單永遠不應該提交兩次,所以瀏覽器(不僅是 IE)會為此發出警告。 由於您確認它重新發送相同的表單並且您的代碼第二次執行。

這是很正常的行為,但是,在您處理 POST 的所有時間,您都必須檢查您是否沒有兩次發布相同的數據。 這是一個嚴重的錯誤,您可以在業務邏輯杠桿或數據庫級別上處理它。 沒關系。 但是應該處理。

這是一種自然的行為。 避免這種情況的最簡單方法之一是在發布后重定向到同一頁面。

當您按下刷新按鈕時,它將發送請求以獲取之前由按鈕單擊事件啟動的當前頁面。

您可以從以下鏈接獲得更多幫助。

http://aspalliance.com/687
http://msdn.microsoft.com/en-us/library/ms379557%28VS.80%29.aspx
http://www.codersource.net/asp-net/asp-net-articles/working-with-post-back-in-asp-net.aspx
http://www.knowdotnet.com/articles/asppagerefresh.html

暫無
暫無

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

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