我一直在开发一个接受条形码扫描仪输入的Web应用程序。我需要将扫描的条形码(GS1-128)从客户端传递到服务器端。根据标准,GS1-128可能包含一个或多个组分隔符(ASCII码29的字符)。因此,“12345”,“12345”是不同的输入。我有一个文本框和一个提交按钮来获取输入。由于某些原因,ASP.NET在回发中不包含不可打印的字符,在这两种情况下,我都收到了“12345”。
有没有办法克服这个问题?
P.S.当我使用WinForm(用于测试)时,一切都很好,我得到了字符,但对于ASP.NET,这不起作用。
1条答案
按热度按时间w6lpcovy1#
经过一些挖掘,我发现大多数条形码扫描仪实际上会传输一系列按键,就像它们是来自键盘一样。当这种情况发生时,符号会以两个按键CTRL+]的形式传输,按键代码值分别为17和229。
由于它没有可打印的表示,我用于输入的Textbox简单地忽略了它。
我最后得到的是放置在文本框上的keyDown事件处理程序。|'.
在服务器端,我简单地将它改回来:
到目前为止一切正常。不过我想知道有没有更好的方法来处理这个问题。