2011-07-12 116 views
2

我有一個簡單的網絡表單,它有幾個文本字段,標籤和提交按鈕。當我點擊提交按鈕時,button1事件被觸發並且數據被提交。在點擊網頁刷新時,Button1_Click事件再次被觸發

但我就是擔心,當我刷新頁面,立即提交數據後,然後我得到以下errror:

enter image description here

當我看到數據庫查詢的條目有存在一雙重輸入。

我不明白爲什麼即使點擊刷新時也點擊了按鈕,甚至沒有辦法點擊Button1。

我該如何避免這種情況發生。

+0

可能重複的[如何防止頁面刷新後發生上次事件?](http://stackoverflow.com/questions/3895158/how-to-prevent-firing-of-last-event-after-page-刷新) – V4Vendetta

+1

還有什麼期望?即使瀏覽器也會警告你。 – leppie

+0

http://stackoverflow.com/questions/665399/how-do-i-stop-the-back-and-refresh-buttons-from-resubmitting-my-form - 你可以在這裏找到答案。 – Illuminati

回答

4

這裏發生的事情:那你刷新頁面,瀏覽器發送完全相同的請求,因爲以前送的,因爲你張貼發送POST到服務器的形式。一般來說,相同的表單不應該提交兩次,所以瀏覽器(不僅僅是IE)會給出警告。既然你保證它重新發送相同的表單,並且你第二次執行代碼。

這是非常正常的行爲,但!在你處理POST的過程中,你必須檢查你是否兩次發佈相同的數據,這是嚴重的錯誤。您可以處理商務邏輯槓桿或數據庫級別,無關緊要。但應該處理。

1

這是一種自然的行爲。避免這種情況的最簡單方法之一是在帖子後重定向到同一頁面。