防止Web应用程序中的操作被调用两次(ASP.NET MVC)

时间:2011-05-13 21:19:04

标签: asp.net asp.net-mvc

确保ASP.NET MVC操作未被调用两次的最佳方法是什么(即如果用户快速连续点击两次按钮)?在我们的大多数屏幕上,如果发生这种情况并不是什么大问题......但是在一些屏幕上会造成严重破坏(比如多次付费而不是一次)。

2 个答案:

答案 0 :(得分:7)

您可以使用javascript停用提交按钮。例如,使用jQuery:

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

答案 1 :(得分:6)

最近有一个关于此的帖子(实际上是Darin)。

他提到并实施Post-Redirect-Get策略的组合涵盖了大多数漏洞。