快速的问题,我已经尝试自己弄清楚这一点,但是在试图弄清页面为什么或如何重新加载以及正在/不应该执行其应做的工作时,使用会话变量可能会造成混淆。
在任何(非脚本)情况下,页面重新加载(使用JavaScript,f5,ctrl + f5,浏览器重新加载按钮等)是否会导致表单重新发布?
(这与在C#代码中使用IfPost分支有关,例如下面的示例代码):
if(IsPost) { //stuff that only executes if the previous request was a post. }
我只是需要知道在这里期望什么,以便可以正确诊断我的会话状态问题。
谢谢你的帮助!
(此外,如果我过分简化了这个问题,对不起。我意识到,这“可能”比简单的答案所提供的更为复杂)。
*_ __ _更新 _ * _ __** 另外,我在StackOverflow上查找了此问题的副本,但没有看到任何内容,因此,如果这是一个重复的问题,我深表歉意。
这两个答案都是好的答案。我接受了也为我的问题提供解决方案的答案,尽管PRG并不是解决问题的“唯一”方法,但它似乎是最好的。这似乎也是一种处理客户端用户友好性的方法,而恕我直言,这似乎是一个很好的习惯。
感谢您向我展示!
是。如果页面是使用POST数据加载的,则会发生这种情况。为了防止这种情况,您需要实现POST/REDIRECT/GET模式。
POST/REDIRECT/GET
发布/重定向/获取(PRG)是一种Web开发设计模式,可防止某些重复的表单提交,从而为用户代理(用户)创建了更直观的界面。PRG以可预测的方式支持书签和刷新按钮,不会创建重复的表单提交。