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

Bee*_*eep 4 asp.net asp.net-mvc

确保ASP.NET MVC操作未被调用两次的最佳方法是什么(即如果用户快速连续点击两次按钮)?在大多数我们的屏幕上的,它不是一个大问题,如果它发生......但在少数会引起混乱(如支付人多次而不是只一次).

Dar*_*rov 7

您可以使用javascript禁用提交按钮.例如使用jQuery:

$(function() {
    $('form').submit(function() {
        $(':submit, :image', this).attr('disabled', 'disabled');
    });
});
Run Code Online (Sandbox Code Playgroud)


Khe*_*pri 6

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

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