3
我有一個具有詳細信息和列表視圖的Web窗體,用戶填充詳細視圖的字段中的數據,然後按下「保存「按鈕,現在一切正常。asp.net與回發後的F5問題,因爲它做它應該是什麼
但是,如果他們在執行此操作後按F5,將在DB中插入新記錄,因爲回發會重複。
有誰知道這可以避免嗎?
我有一個具有詳細信息和列表視圖的Web窗體,用戶填充詳細視圖的字段中的數據,然後按下「保存「按鈕,現在一切正常。asp.net與回發後的F5問題,因爲它做它應該是什麼
但是,如果他們在執行此操作後按F5,將在DB中插入新記錄,因爲回發會重複。
有誰知道這可以避免嗎?
對於任何使用POST請求進行操作的網頁,這都是相同的。
您可以在保存按鈕事件後使用Response.Redirect("yourpage.aspx")
來停止此操作。這會將它們發送到您的頁面的新版本,而無需發佈數據。
這樣做的另一種方式是爲您的表單添加某種形式的標識,比如生成的GUID。在處理保存請求之前,您可以執行一些檢查,即使用該GUID的請求之前尚未發出。
在以下網址找到了一個相當簡單優雅的解決方案:http://prashantprof.blogspot.com/2008/02/handling-page-refresh-f5-in-aspnet-post.html – Jagd 2011-03-02 17:02:11