javascript - 在没有 @oninput 的情况下获取 Blazor 中输入字段的值
问题描述
我有一个由 Blazor组件<input>
生成的 HTML 元素。<InputText>
我正在使用 JavaScript 库来检测用户何时扫描条形码。当此事件发生时,我将扫描的条形码的值设置到<input>
元素中。
我想在 C# 中立即意识到这种价值变化。通常我会用它@bind-event:oninput
来确保我在当前值发生变化时立即获得它,但是当通过代码设置 HTML 输入的值时,不会触发此事件。
有没有办法通过 JavaScript 为 HTML 输入赋值,然后让 C# 立即意识到更改并更新InputText
控件绑定到的 C# 对象的属性?
解决方案
我已经通过以下方式解决了这个问题:
如果您在 JS 中具有所需的 C# 值,请将其应用于字段并在按钮上调用 .click() 。此按钮调用一个 C# 方法,该方法调用一个 JS 函数,该函数将输入的值作为字符串返回给您的 C# 方法,您现在可以随意使用该方法。
虽然这是一个肮脏的解决方案,但它确实有效。
我试图让 invokeMethodAsync 直接调用我的 C# 方法,但这要求它是静态的,我根本没有时间让这个项目以正确的方式完成它。
推荐阅读
- python - Django 模型对象返回无
- linux - Goaccess,格式错误 - 验证您的日志/日期/时间格式
- flask - 如何使用带有 mongodb 的烧瓶对列表进行排序?
- amazon-web-services - Websockets 不适用于 AWS ElasticBeanstalk 部署
- selenium - 向 selenium-standalone NPM 库提供配置文件
- c# - 如何在 Visual Studio 中重命名 WPF 窗口文件?
- r - Sparklyr - 在 spark-submit 中更改日志级别
- laravel - hasMany 关系返回 null 与 mongodb (jenssegers) laravel
- c# - 使用串口windows 10的蓝牙通信
- python - Django 迁移已应用,但我没有迁移文件