【发布时间】:2021-08-02 07:21:02
【问题描述】:
我正在开发一个 asp.net MVC 项目。在一页上,它具有许多控件和功能。当用户单击“提交”按钮时,它将在控制器中对输入进行许多验证。如果有什么不对,它会在页面上显示错误。否则,将使用 Guid 将数据保存在数据库中,然后转到下一页。
问题是:验证需要一些时间,用户可能会不小心多次单击提交按钮,这会导致使用相同的 Guid 将数据保存到数据库中,这会引发错误,因为 Guid 对于每个数据都必须是唯一的。
有没有办法防止用户点击多次?我们不能简单地在单击后禁用按钮。如果验证有问题,则用户无法再次提交,因为该按钮已禁用。
【问题讨论】:
-
是的,您可以简单地禁用该按钮。控制器返回一个错误,您可以重新启用该按钮。我假设控制器在页面更改之前就像一个 API 控制器,即在出现错误时返回 JSON 或类似的。如果没有代码,我只能根据您的描述进行假设,这只是当时的猜测。
-
这是一篇不错的文章,它提供了几种不同的方法来实现您的要求:morioh.com/p/4c24b6c911cd
标签: javascript .net asp.net-mvc