2014-02-20 16 views

回答

2

不要把你插入的代碼在Page_Load方法,或者如果你是,確保你正在檢查Page.IsPostBack第一。

0

是的,通常我們有一個身份自動增量數字ID,在插入後應該發送回您的表格。所以你只需要檢查服務器,如果該數字是> 0並執行update而不是insert

0

您的重定向解決方案是有效的。這種模式被稱爲後/重定向/獲取

郵政/重定向/獲取(PRG)是一個Web開發設計模式 防止一些重複的表單提交,創造一個更直觀的 接口,用於用戶代理(用戶)。 PRG以可預測的方式實現書籤和刷新按鈕,不會創建表單提交的重複 。

當web表單通過HTTP POST請求提交給服務器, 試圖刷新某些 用戶代理服務器的響應可導致原始HTTP POST請求 的內容重新提交一個網絡用戶,可能會導致不希望的結果,例如 重複購買網絡。

爲避免此問題,許多Web開發人員使用PRG模式[1] - 而不是直接返回網頁,POST操作會返回 重定向命令。 HTTP 1.1規範引入了HTTP請求代碼以確保在這種情況下, Web用戶的瀏覽器可以安全地刷新服務器響應,而不會引起 導致初始HTTP POST請求被重新提交。然而,大多數 今日使用的常見商業應用(新舊類似)仍然在這些情況下仍然發出HTTP 302(「發現」)響應。 通常可以避免使用HTTP 301(「永久移動」),因爲 HTTP-1.1兼容的瀏覽器在 接收HTTP 301之後不會將該方法轉換爲GET,對於HTTP 302更常見。[2]但是,在不希望POST 參數轉換爲GET參數並因此記錄在 日誌中的情況下,HTTP 301可能是優選的。

http://en.wikipedia.org/wiki/Post/Redirect/Get