2010-09-21 113 views
6

我正在開發ASP.NET應用程序,並且遇到與重新提交行爲有關的「問題」。 我正在使用表單提交事件中的計數器來控制重新提交,如果提交已經發布,則會禁用提交。 我的申請是一個3步驟的工作流程,當第3步顯示交易從第2步延續到第3步。 我的問題是什麼?那麼...我想避免用戶通過按F5或其他所有可能性重新提交數據。我不想禁用該密鑰,因爲可能是解決方法。 我想知道如果我可以刪除在呈現完成之後運行的HTTP模塊中的發佈數據,並且恰好在將響應發送給用戶之前。避免窗體重新提交

回答

5

您可以使用Post/Redirect /獲取「模式」,當用戶發佈數據時,將其重定向到另一個將響應獲取的頁面(處理提交的數據之後)。就像stackoverflow和其他網站正在做的一樣。

以下是解釋Post/Redirect/Get Pattern的維基百科頁面。

+1

是的,如果你在POST之後做了重定向,那麼客戶端被重定向到一個GET頁面,所以如果它們刷新了,它只會刷新GET。 – 2010-09-21 16:48:46

+1

鏈接已損壞,該頁面沒有Google緩存或waybackmachine。 – daniloquio 2012-03-12 16:23:06

2

也許我誤解了你的問題,但聽起來你可能會讓事情變得比他們更難。如果您已經跟蹤過表單是否已經提交過,爲什麼不能在執行提交時執行的任何邏輯之前在代碼中檢查該標記?如果之前已經提交過,則忽略重新提交事件並可能設置錯誤消息。

相關問題