【问题标题】:Preventing action in web application from being called twice (ASP.NET MVC)防止 Web 应用程序中的操作被调用两次(ASP.NET MVC)
【发布时间】:2011-05-14 05:28:24
【问题描述】:

确保 ASP.NET MVC 操作不被调用两次(即,如果用户快速连续单击按钮两次)的最佳方法是什么?在我们的大多数屏幕上,如果发生这种情况并没有什么大不了的……但在少数情况下,它会造成严重破坏(例如多次付款而不是一次付款)。

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    您可以使用 javascript 禁用提交按钮。以 jQuery 为例:

    $(function() {
        $('form').submit(function() {
            $(':submit, :image', this).attr('disabled', 'disabled');
        });
    });
    

    【讨论】:

      【解决方案2】:

      最近有一个关于这个的帖子(实际上是达林)。

      按照他提到的做法和实施Post-Redirect-Get 策略相结合,可以弥补大多数漏洞。

      【讨论】:

      • 我们在大多数页面上使用 P-R-G,问题在于 jquery 发布/提交页面(因为调用会异步进行)。我会试试达林对这些的建议。
      猜你喜欢
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      相关资源
      最近更新 更多