我在页面上有一个按钮,页面名称 abc.aspx 。当用户单击该按钮时,它应该重定向到finishwork.aspx
页面。
在finishwork.aspx 页面后,用户不得返回abc.aspx
页面。当用户在浏览器中按下返回按钮时,他应该被重定向到workallreadyfinish.aspx
页面
禁用该页面上的缓存并避免缓存该页面。
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
location.replace()
可用于替换您在历史记录中的页面。
有很多方法可以做到这一点,但是,当您使用 ASP.NET 并且我将假设 WebForms 时,您为什么不使用<asp:Wizard>
控件呢?
您将能够对您的步骤进行非常详细的控制,并阻止用户返回以及所有其他好东西。
如果您想采用正常的方式,您可以随时使用 javascript 事件警告用户该页面将不再有效。
您还可以使用散列并通过 ajax 调用而不是普通 POST 提交表单
您可以在提交表单后编写一个 cookie,下一次显示此类警告,因此即使用户返回并再次按下提交按钮,您也不会在意。记得删除 Cookieif (!Page.IsPostBack) { ... }
围绕浏览器后退按钮设置用户工作流程并不是一个好主意。
浏览器后退按钮并非完全由您控制。
如果您想在应用程序中提供逻辑返回,请在应用程序中使用返回按钮。
如果您只希望用户不能返回页面,您应该告诉浏览器不要缓存它,将页面设置为 expire。
您可以为此使用javascript函数:-
function disableBackButton()
{
window.history.forward();
}
setTimeout("disableBackButton()", 0);