gpt4 book ai didi

c# - 防止用户两次提交表单的好方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 08:15:04 24 4
gpt4 key购买 nike

我有一个购买页面,我不希望用户在到达“订单完成”页面后能够刷新页面并重新提交表单,因为它会通过数据库值自动在我们的系统中设置它们,并且通过 Paypal 为他们的卡充电(只希望这些发生一次)......我看到一些网站说“不要点击刷新,否则你会被收取两次费用!”但是让它保持开放的可能性是非常蹩脚的,什么是只允许它提交一次或阻止它们刷新等的好方法?

PS:看到几个类似的问题:PHP: Stop a Form from being accidentally reprocessed when Back is pressedHow do I stop the Back and Refresh buttons from resubmitting my form?但没有找到令人满意的答案......如果有一种机制,那么 ASP.NET MVC 特定的答案也是理想的。

编辑:一旦他们点击提交它 POSTS 到我的 Controller ,然后 Controller 做了一些魔术,然后返回一个带有订单完成消息的 View ,但是如果我在我的浏览器上点击刷新它会完成整个'你想重新发送吗这个表格?那很糟糕...

最佳答案

对此的标准解决方案是 POST/REDIRECT/GET图案。这种模式几乎可以使用任何 Web 开发平台来实现。您通常会:

  • POST 后验证提交
  • 如果失败重新呈现原始输入表单并显示验证错误
  • 如果成功,重定向到确认页面,或重新显示输入的页面 - 这是 GET 部分
  • 由于最后一个操作是 GET,如果用户此时刷新,则不会重新提交表单。

关于c# - 防止用户两次提交表单的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2112223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com