在没有@oninput的情况下获取Blazor中输入字段的值

时间:2020-07-24 12:33:41

标签: javascript c# html blazor

我有一个由Blazor <input>组件生成的HTML <InputText>元素。

我正在使用JavaScript库来检测用户何时扫描条形码。发生此事件时,我将扫描条形码的值设置到<input>元素中。

我想立即意识到在C#中值的这种变化。通常,我会使用@bind-event:oninput来确保每当有更改时立即拥有当前值,但是当通过代码设置HTML输入的值时不会触发此事件。

是否可以通过JavaScript为HTML输入分配值,然后让C#立即知道更改并更新绑定到InputText控件的C#对象的属性?

1 个答案:

答案 0 :(得分:0)

我已经通过以下方式解决了这个问题:

在JS中具有要在C#中使用的值的地方,将其应用于字段并在按钮上调用.click()。此按钮调用C#方法,该方法调用JS函数,该函数将输入值作为字符串返回给C#方法,您现在可以根据需要使用它。

虽然这是一个肮脏的解决方案,但它确实有效。

我试图让invokeMethodAsync直接调用我的C#方法,但这要求它必须是静态的,而我根本没有时间让这个项目以正确的方式来做。