我在「精靈般的」工作流程得到了一些ASP.NET Web表單:後退按鈕處理
形式的提交,重定向到形成B.形式B進行提交,重定向到窗體C.提交表格C,重定向到Success.Aspx,它告訴用戶提交已成功並且數據庫已更新。
此時,用戶不應該能夠返回到表格C並重新提交。但是,如果用戶在Success.aspx上單擊瀏覽器的後退按鈕,則表單C上不會觸發服務器端事件。Page_Load不會再次觸發。 C表格是否知道它正在重新訪問,如果是,如何?
或者,如果Form C知道它正在被重訪的方式,是否有一些設置可以在Form C的服務器端Submit-handler中設置,這會導致頁面過期並將用戶重定向到Form A ?
P.S.我試着在我的C型的Page_Load中設置緩存過期,但它並沒有引起Page_Load中使用後退按鈕重新訪問該頁面時,重燒:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now - new TimeSpan(1, 0, 0));
Response.Cache.SetLastModified(DateTime.Now);
Response.Cache.SetAllowResponseInBrowserHistory(false);
P.P.S.但是,這(通過@ GH9在評論的鏈接)有預期的效果:
Response.Cache.SetNoStore();
Response.Cache.AppendCacheExtension("no-cache");
Response.Expires = 0;
http://blog.maskalik.com/asp-net/resolving-browser-back-button-with-caching-pages/ a快速谷歌'迴應按鈕asp.net'帶來了噸答案 – gh9
爲什麼沒有被激發的原因是頁面從瀏覽器緩存中加載。沒有新的請求。也有所有重定向的原因嗎?你可以使用'asp:Panels'在aspx頁面上處理所有這些,你可以根據需要顯示/隱藏? –
@ gh9:那些Google答案沒有upvotes告訴我他們的方法是最佳實踐。這就是我們來這裏的原因,不是嗎? – Tim