7

僅在Chrome中才會出現奇怪的後退按鈕行爲。
我有兩個頁面 - 網格和表格
場景:
1.當從網格導航到窗體時,一切都很好 - 網格添加到歷史記錄中。
2.當表單通過發佈發送到服務器時,我使用RedirectToAction重新定向(302)到網格 - 表單被添加到歷史記錄。
3.當從電網再次導航到表單後重定向,包含網格地址的歷史點不會添加到歷史Chrome瀏覽器歷史記錄bug可能 - 正在執行PRG,並且再次導航到同一表單時 - 沒有添加歷史記錄

現在,你必須後退按鈕點擊兩次獲得回到電網。

如果你重複所有步驟數次,看歷史堆棧,你會在中間

編輯見表格條目的悲傷列表而不網格:這裏是一個網頁的鏈接演示問題,在鉻打開它,並按照指示 - see the Chrome history bug in action

我發現的唯一「解決方案」是把一些隨機廢話在鏈接到窗體,但我真的很討厭這個。

+0

我也幾乎可以肯定它是不相關的服務器技術,我使用。它與來自服務器的302重定向有關,然後返回到同一個Url。添加了MVC部分來給上下文,猜測它會發生使用RoR以及.. – 2012-03-28 15:04:11

+0

你可以設置一個小的示例網站進行復制嗎? – Udi 2012-03-28 20:33:15

+0

我會嘗試把東西,現在它深深的在我的應用程序 – 2012-03-29 04:44:41

回答

3

Chrome嚴格使用HTTP 303 See other,而您的應用程序使用302 Found進行重定向。看到有關鉻的缺陷報告在這裏:http://code.google.com/p/chromium/issues/detail?id=2801

您可以投票在這裏解決ASP.Net MVC的RedirectToAction:http://connect.microsoft.com/VisualStudio/feedback/details/706961/asp-net-mvc-controller-redirecttoaction-method-should-return-http-303-response

+0

感謝Udi,將調查它 – 2012-04-02 07:19:05

+0

驚人的多久這個錯誤生活。唉返回303不解決鉻問題 – 2012-04-02 08:08:16

+0

將303添加到示例頁面,並沒有接受你的答案,因爲它沒有解決鉻問題,並將其打開可能引起更多關注的問題(所以+1並感謝您的幫助) – 2012-04-02 08:10:55