ASP中的关键事件

Dro*_*r R 0 asp.net keyboard

如何使用C#代码捕获ASP中的关键事件?

例如,我想按左键,文本框将发出"Left Pressed".

xxb*_*bcc 6

您误解了Web应用程序和ASP.NET的工作方式.用户在客户端按下显示HTML页面的浏览器按下按键.ASP.NET和构成Web应用程序的C#代码在服务器端运行.您无法真正捕获服务器端的关键事件.即使你可以,你也不应该 - 每次用户按一个键时,你必须将它发送到服务器端,评估它,然后再次渲染页面并将其发送回浏览器.这将非常频繁地生成大量流量和强制页面重新加载,使得页面非常难以使用.即使是AJAX调用也无济于事.

相反,您应该在客户端处理按键,在浏览器内运行的JavaScript代码中,当您遇到服务器需要处理的内容时,您可以执行服务器调用.

这个站点(在其他一些站点中)有代码示例,展示了如何在JavaScript中实现密钥检测:

http://www.alessandrolacava.com/using-javascript-to-detect-the-key-pressed/

编辑:

或者,您可以尝试使用Silverlight,它是一个类似于Flash的可编程浏览器插件.Silverlight托管.NET Framework,可以使用C#进行编程.但即使在这种情况下,您也可以在客户端处理密钥,而不是在服务器上处理密钥.

  • @DrorR即使你设法做到这一点,这也是一个糟糕的主意.正如我所说,按键发生在客户端 - 没有理由将它们发送到服务器,特别是像俄罗斯方块这样的游戏.所有这一切都会产生网络流量和服务器负载.我更新了关于Silverlight的答案. (2认同)