如何防止MVC3上的多个帖子?

Bru*_*oLM 5 c# asp.net-mvc asp.net-mvc-3

用户想要在他的博客中发帖,他填写该字段并单击submit.

该网站运行缓慢,他再次点击,再次点击.

它终于被保存了,但现在他检查了他的帖子并看到了4帖子.

我怎样才能防止这种情况发生?如果用户点击提交一次我希望do nothing下次点击或abort previous开始新帖子,无论哪个更有意义或推荐.

在一个表格中

@using (Ajax.BeginForm(...))
{
}
Run Code Online (Sandbox Code Playgroud)

bni*_*dyc 17

实现此目的的最简单方法是在单击后禁用提交按钮.

将以下javascript(jQuery)添加到您的视图中:

$(function () {
    $('input[type="submit"]').click(function() {
        $(this).attr('disabled', 'disabled');
    });
});
Run Code Online (Sandbox Code Playgroud)

如果需要,请记住在ajax请求完成后启用按钮:

$('input[type="submit"]').removeAttr('disabled');
Run Code Online (Sandbox Code Playgroud)

更新:

最好在表单提交事件处理程序中禁用提交按钮,因为用户可以通过按Enter按钮提交表单:

$(function () {
    $('form').submit(function() {
        $('input[type="submit"]', this).attr('disabled', 'disabled');
    });
});
Run Code Online (Sandbox Code Playgroud)