我正在制作一个电子商务 web 应用程序(在 MVC3 中),现在我正在测试它。我的问题是:每当有人多次点击提交按钮时,我都会发出尽可能多的请求并将其保存在数据库中。所以我正在实现一些客户端和服务器端代码来防止这些多次提交。每当有人单击这样的提交按钮时,客户端都会阻止屏幕:
$(document).ready(function () {
$('input[type=submit]').click(function () {
blockScreen();
});
$.unblockUI();
}
function blockScreen() {
$.blockUI({ message: '<h1><img src="../images/processing.gif" /></h1>'
});
我在使用 blockUI 时遇到的问题是,当有人单击提交但出现 ModelState 错误(例如未填写的必填字段)时,屏幕被阻止并且无法解除阻止,除非重新加载或使用浏览器的 console。
服务器端验证,所以它不会有我稍后会做的复制,所以不需要考虑这个问题......