2011-11-30 136 views
0

我是新的和道歉,如果我問老年人的問題。我有一個asp.net web應用程序的問題,具體如下:舊的驗證錯誤點擊瀏覽器後退按鈕

問題:

第1頁上,我需要輸入詳細信息,然後單擊下一步按鈕轉到第2頁 如果我有任何驗證錯誤,我清除它們,然後單擊下一步按鈕 如果我點擊BROWSER BACK按鈕,我期望在頁面1上看到更正的細節,但它會加載頁面1 WITH VALIDATION ERRORS。

更多信息:

1 alread的ASPX與到期設置爲-1和 '無緩存' 兩個Cache-Control和編譯屬性設置meta標籤。

在IE 8上,我得到'頁面過期'頁面,但在Firefox 8上,它自動刷新頁面而不是顯示'頁面過期'頁面。

該問題似乎甚至在IE上,當我嘗試手動刷新頁面時,我可以看到類似於FIrefox行爲的舊驗證錯誤。

出於好奇,我在頁面1上輸入了不正確的細節,這種方式我被驗證錯誤阻礙了3次。然後我糾正細節,並點擊下一步按鈕進入第2頁。 在頁面2上點擊瀏覽器後退按鈕,我會得到第三次驗證錯誤,或者第1頁的最新版本出現vlidation錯誤。

但是,瀏覽器後退按鈕在前一頁上沒有驗證錯誤時工作正常。

對不起,寫了這麼多的信息,只是想可能會讓你更深入的瞭解這個問題。

+0

寫更多信息幾乎總是件好事。另一件事會讓我們更容易爲您提供答案,那就是添加(部分)用於頁面的代碼。 – Qqwy

+0

嘗試'嚮導'控制。它做你想要的。 http://msdn.microsoft.com/en-us/library/fs0za4w6.aspx – Bazzz

回答

0

聽起來就像你正在嘗試創建一個類似嚮導的過程,在最終目標之前讓用戶通過多個步驟(頁面)。如果是這樣的話,我過去處理的方式是通過使用Panel標籤。爲您的流程中的每個步驟添加一個面板標籤,並將您的表單元素添加到每個步驟。您也可以使用「下一步」按鈕進入每個面板的下一步。點擊按鈕後,隱藏當前面板並取消隱藏下一個面板。您還可以將驗證邏輯應用於該按鈕,以防止用戶輸入錯誤而前進。最後,您可以將它們重定向到其他頁面以獲取「成功」消息或摘要。如果成功頁面也是該頁面上的另一個面板,則用戶如果處理不正確,可以通過刷新頁面來重新提交該表單。

我們已經完成了很多工作,並且從未遇到類似您所描述的驗證問題。我希望這可以幫助你一點。

+1

從.net 3.0開始,出現了一個'Wizard'控件。 http://msdn.microsoft.com/en-us/library/fs0za4w6.aspx – Bazzz

+0

啊,我忘了那件事。自從2.0開始我一直在創建我自己的,並且從未嘗試過嚮導控件。 – JOpuckman

+0

試試吧! :)這很不錯,使用ViewState來「記住」你在之前以及下一個屏幕中填充的內容。我幾乎敢說使用Wizard控件也可以解決OP的問題。 – Bazzz

相關問題