c# - Blazor WASM Button Onclick 每次都不会触发
问题描述
我有一个包含项目摘要的表格,当我单击一个按钮时,我会弹出一个模式,其中包含有关该项目的附加信息。不幸的是,由于某种原因,Blazor 不会总是弹出模式。它已经到了我已经简化代码只做一个 Console.WriteLine("Person Id: Id") 的地步,我仍然看到这个问题。
@foreach(var p in people){
<tr>
<td><button type="button" class="btn btn-outline-info" @onclick="(async()=>await ShowPerson(p))">@p.FirstName</button>
</td>
<td>@p.LastName</td>
</tr>
}
然后在代码部分
List<Person> people { get; set; }
...
async Task ShowPerson(Person p){
Console.WriteLine("Click");
selectedPerson = p;
await _jsRuntime.InvokeVoidAsync("toggleModal", "personModal");
}
然后在我的 js 文件中,toggleModal 只是做了一个$("#" + id).modal('toggle');
现在,当我在观看控制台时,我可以单击一个按钮,并且控制台中可能没有任何显示,并且模式不会打开。或者单击显示在控制台中并弹出模式。有没有人遇到过这个,或者从上面的代码中看到任何明显的东西?
谢谢
解决方案
对于遇到这种情况并且像我一样盲目的其他人。验证您@onclick
是在实际按钮上,而不是在范围内
坏的:
<button class="btn btn-success">
<span class="fa fa-bug" @onclick="(async()=>await foo(x))"></span>
</button>
好的:
<button class="btn btn-success" @onclick="(async()=>await foo(x))">
<span class="fa fa-thumbs-up"></span>
</button>
推荐阅读
- go - 如何将 os/exec 输出传递给 gin get
- python - python中从头开始的梯度下降不起作用
- javascript - Firestore:无法获取嵌套文档。为什么?
- php - 无法在 Wordpress 中导入 XML 文件
- c++ - 如何在 dlib 的一对一分类器中识别陌生人
- javascript - 如何调试/检查 hexo 博客
- android - 无法安装,因为提供程序名称 it.federicoboschini.fileprovider(在包 1 中)已被包 2 使用
- reactjs - Node-json2html 找不到它的声明模块
- citrus-framework - REST Kafka和soap服务的集成测试框架
- ios - 在导航栏中使用提示时自动布局警告