Blazor中基于用户输入变量调用方法的异常排查求助
Blazor组件调用方法失败的修复方案
问题分析及修复点:
- 绑定语法错误:原代码中
@bind:="@kod"不符合Blazor双向绑定规范,正确写法为@bind="kod"。 - 冗余的Task.Run使用:若
Dodajelement是同步方法,直接调用即可,无需用Task.Run额外创建线程;若为异步方法,直接await调用即可,避免UI线程异常。 - 变量访问修饰符优化:
protected string kod;改为private string kod;,组件内部变量无需protected级别。 - 新增输入校验:调用方法前判断
kod是否为空,避免无效参数传入。
修复后的完整代码:
@page "/DodawanieElementu" @using VikkingWebApp.Data; @inject VikkingServices VikkingOkucia <h3>DodawanieElementu</h3> <p> dodaj okucie z bazy: </p> <input type="text" @bind="kod" /> <button @onclick="Search">Confirm</button> @code { private string kod; async Task Search() { if (!string.IsNullOrWhiteSpace(kod)) { // 若Dodajelement是异步方法 await VikkingOkucia.Dodajelement(kod); // 若Dodajelement是同步方法,直接调用: // VikkingOkucia.Dodajelement(kod); } } }
内容的提问来源于stack exchange,提问作者Przemo
相关产品推荐
相关产品推荐

