我正在尝试对“双提交”问题实施某种解决方案,当有一个提交按钮触发需要一些时间运行的代码例程时,会出现这种问题。
不幸的是,许多用户仍在使用旧的互联网浏览器和一些运行无脚本插件。我不能使用javascript。
点击asp.net中的按钮后有没有办法禁用按钮?
答案 0 :(得分:2)
由于您想在用户点击后禁用该按钮(并且在您的页面仍在加载时),因此必须在客户端完成。 JavaScript是您可以使用的唯一客户端语言。
因此,请确保如果用户已禁用Javascript(现在极不可能),您的结束页面可以处理“双重提交”数据。
答案 1 :(得分:1)
短篇小说,没有。
在您的情况下,您需要制作一些服务器端代码来检测双重帖子,然后丢弃重复的请求。
答案 2 :(得分:0)
每次点击按钮后,您可以在服务器上启动计时器并将其置于会话中。在下一次单击时,您可以检查计时器并应用或拒绝下一次用户点击。
答案 3 :(得分:0)
因此,如果没有一些类型的客户端脚本,就无法禁用该按钮。如果您认为它将被禁用,无论它是什么类型的客户端脚本,那么这是一项不可能完成的任务。
所做的是确保他们尝试执行的操作每次加载时不会运行多次。
Lock
块。lock
块并不执行任何操作,或显示某种错误消息。lock
块,然后执行操作。为会话密钥提供适当的到期时间;它不应该超过几分钟。你甚至可以在操作结束时删除相关的会话密钥,如果它在那时重复有意义的话。答案 4 :(得分:-2)
只需编写代码
{
//Some Code
button1.Enabled = false;
}