我創建了一個用戶控件來處理向某些業務實體(如聯繫人和客戶)添加註釋。非常好,除了一個問題。AJAX,回發和瀏覽器刷新
我正在使用ListView控件編輯和刪除註釋和一個單獨的區域,在同一個用戶控件上添加新註釋。所有這些都包裝在UpdatePanel中。
這裏是我的方案......用戶添加新評論...頁面做了回發,數據保存成功,和ListView控件進行更新,以顯示新的註釋。現在,如果用戶刷新瀏覽器,它將自然回發並將添加另一個重複的記錄。
關於如何最好地防止這種情況的任何想法?
我創建了一個用戶控件來處理向某些業務實體(如聯繫人和客戶)添加註釋。非常好,除了一個問題。AJAX,回發和瀏覽器刷新
我正在使用ListView控件編輯和刪除註釋和一個單獨的區域,在同一個用戶控件上添加新註釋。所有這些都包裝在UpdatePanel中。
這裏是我的方案......用戶添加新評論...頁面做了回發,數據保存成功,和ListView控件進行更新,以顯示新的註釋。現在,如果用戶刷新瀏覽器,它將自然回發並將添加另一個重複的記錄。
關於如何最好地防止這種情況的任何想法?
你可以嘗試使用Post/Redirect/Get模式。基本上不是讓回發發送數據,而是重定向到頁面。這樣,如果用戶刷新,他/她正在刷新GET命令而不是POST。
我沒有使用ASP.NET幾年,但你應該換在Page.IsPostBack
你「做回發」代碼:
if(IsPostBack) {
//do your data-saving code...
}
您如何添加新評論?它是「添加評論」按鈕事件處理程序的一部分? – EndangeredMassa 2008-10-03 16:49:06
是的......所有這些工作......但如果用戶在他們的瀏覽器上按刷新按鈕,它將添加另一個記錄。 – mattruma 2008-10-03 16:52:08
這裏有一篇很好的文章[這裏](http://aspalliance.com/687_Preventing_Duplicate_Record_Insertion_on_Page_Refresh.all)。 – ballpointpeon 2008-10-03 16:54:13