C# 发布/重定向/获取后Google Chrome中的返回行为

C# 发布/重定向/获取后Google Chrome中的返回行为,c#,.net,google-chrome,back-button,post-redirect-get,C#,.net,Google Chrome,Back Button,Post Redirect Get,我在c/.net中有一个表单,在有人更改他们想要购买的物品数量后使用PRG。我注意到,在Firefox和IE中,您可以根据需要多次更改数量,然后按back键,它会将您带回上一个屏幕。然而,在Google Chrome中,如果你在多次调整数量后按back,它将停留在页面上,只需重新调整到以前的数量,最终它将返回到以前的屏幕。我希望有一种方法可以让它不再像IE和Firefox那样重新调整数量并立即返回上一页。有人知道这是否可能吗 我不太擅长解释我的问题,所以我希望这是有意义的,谢谢 编辑:我已尝试关

我在c/.net中有一个表单,在有人更改他们想要购买的物品数量后使用PRG。我注意到,在Firefox和IE中,您可以根据需要多次更改数量,然后按back键,它会将您带回上一个屏幕。然而,在Google Chrome中,如果你在多次调整数量后按back,它将停留在页面上,只需重新调整到以前的数量,最终它将返回到以前的屏幕。我希望有一种方法可以让它不再像IE和Firefox那样重新调整数量并立即返回上一页。有人知道这是否可能吗

我不太擅长解释我的问题,所以我希望这是有意义的,谢谢


编辑:我已尝试关闭缓存,但仍然无法工作

假设您已正确设置所有HTTP缓存头,这可能与前向缓存有关。我在狩猎中见过这种行为。Safari是基于Webkit的,和Chrome一样,直到最近的分支。所以这个解决方案可能是我力所能及的?这似乎与我的问题有关:这似乎与MainResourceLoader::willSendRequest中的代码有关。有一个对isPostOrRedirectAfterPost的调用,如果返回true,我们将强制缓存策略重新加载IgnoringCacheData。然后,我们修改DocumentLoader的ResourceRequest。前向缓存设计用于在不发出任何请求的情况下重建页面的最后状态。首先,如果需要帮助验证是否正确设置HTTP缓存头,请确保正确设置了post代码。这将修复各种行为,并且在大多数浏览器中,前向缓存将尊重这些头。如果标题正确,但浏览器仍从旧值重建页面,则可以尝试。该链接适用于Firefox,但适用于任何浏览器中的前向缓存。另请参阅,以了解如何捕获缓存事件并可能阻止它们。通常情况下,您只想在万不得已的情况下执行此操作,即确保在其他位置禁用缓存。我也可以发布我使用的代码,但为了测试它,我检查了元素、设置,并选中了DevTools打开时禁用缓存,然后我在DevTools打开时测试了它,但它似乎仍然不起作用。这应该已禁用缓存。