Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为每个页面刷新插入新行_C#_Asp.net - Fatal编程技术网

C# 为每个页面刷新插入新行

C# 为每个页面刷新插入新行,c#,asp.net,C#,Asp.net,嗨,我在将记录插入数据库时遇到了一个奇怪的问题。 在我的按钮点击事件中,我正在尝试将一些值插入到我的数据库中,它工作正常。一旦插入完成。。。同样,如果我按F5键或刷新浏览器,将插入一个新行,其中包含表中以前的值 为什么会这样 谢谢您需要处理页面刷新事件处理程序并进行检查。原因很简单,因为刷新导致了另一次回发,重新执行插入操作 您可能希望对同一页执行重定向以防止出现这种情况。还有一些其他方法可以处理此问题。当您单击按钮时,它会向服务器发送POST请求,并将更新的页面作为响应发回。为了刷新该页面,必

嗨,我在将记录插入数据库时遇到了一个奇怪的问题。 在我的按钮点击事件中,我正在尝试将一些值插入到我的数据库中,它工作正常。一旦插入完成。。。同样,如果我按F5键或刷新浏览器,将插入一个新行,其中包含表中以前的值

为什么会这样


谢谢

您需要处理页面刷新事件处理程序并进行检查。

原因很简单,因为刷新导致了另一次回发,重新执行插入操作


您可能希望对同一页执行重定向以防止出现这种情况。还有一些其他方法可以处理此问题。

当您单击按钮时,它会向服务器发送POST请求,并将更新的页面作为响应发回。为了刷新该页面,必须再次发布相同的帖子,服务器将其解释为再次单击按钮

在这种情况下,大多数Web浏览器都会发出警告,称刷新页面可能会重复刚刚执行的任何操作(在您的情况下,在数据库中插入一行)。但是,如果您想防止这种情况发生,最好的方法可能是使用重定向来响应POST请求。在使用C#的ASP.NET中,执行此操作的方法是:

Response.Redirect(url);

重定向回同一页是可以的,也可以重定向到其他页。当浏览器收到此重定向时,它将发出指定页面的GET请求。然后,如果刷新,则不会执行任何操作。

这是因为您再次请求页面,使用了与第一次请求页面时相同的POST参数


修复方法:检查代码中的页面刷新,在该事件中不执行插入,或者第一次设置cookie,如果cookie存在,则不再执行插入。cookie可以有固定的持续时间(比如30分钟),也可以是会话cookie,持续到用户关闭浏览器。

检查以下链接中的解决方案