我有一个由Blazor <input>
组件生成的HTML <InputText>
元素。
我正在使用JavaScript库来检测用户何时扫描条形码。发生此事件时,我将扫描条形码的值设置到<input>
元素中。
我想立即意识到在C#中值的这种变化。通常,我会使用@bind-event:oninput
来确保每当有更改时立即拥有当前值,但是当通过代码设置HTML输入的值时不会触发此事件。
是否可以通过JavaScript为HTML输入分配值,然后让C#立即知道更改并更新绑定到InputText
控件的C#对象的属性?
答案 0 :(得分:0)
我已经通过以下方式解决了这个问题:
在JS中具有要在C#中使用的值的地方,将其应用于字段并在按钮上调用.click()。此按钮调用C#方法,该方法调用JS函数,该函数将输入值作为字符串返回给C#方法,您现在可以根据需要使用它。
虽然这是一个肮脏的解决方案,但它确实有效。
我试图让invokeMethodAsync直接调用我的C#方法,但这要求它必须是静态的,而我根本没有时间让这个项目以正确的方式来做。