在ASP.NET MVC页面上阻止双重提交

时间:2013-01-28 22:20:09

标签: c# asp.net-mvc-4

我有一个ASP.NET MVC 4视图。在视图中,我有

<form action="/myAction" method="post">
  ...
  <input type="submit" value=" Save&nbsp;" onclick="this.disabled = true; this.value = ' Please wait... '; return true;" />
</form>

通过禁用该按钮,表单永远不会被提交。但是,我想在用户点击它后禁用该按钮。我想禁用它的原因是为了防止用户多次单击“提交”按钮。我究竟做错了什么?我想如果我回复了,表格仍会提交。

2 个答案:

答案 0 :(得分:4)

禁用表单提交的事件中的按钮,而不是按钮的单击事件。这是因为click事件在提交表单之前触发 - 虽然您要返回true,因此不应该导致提交失败,我不认为。

答案 1 :(得分:0)

使用ActionFilters。 This blog post有一个课程,你可以放入你的项目,装饰你的行动,你就完成了。