C# Blazor WASM按钮一次点击,但不是每次都开火
我有一个包含项目摘要的表格,当我点击一个按钮时,我会弹出一个模式窗口,其中包含关于该项目的附加信息。不幸的是,由于某些原因,Blazor不会总是弹出模态。我已经将代码简化为一个Console.WriteLine(“personid:Id”),我仍然看到了这个问题C# Blazor WASM按钮一次点击,但不是每次都开火,c#,blazor,blazor-webassembly,C#,Blazor,Blazor Webassembly,我有一个包含项目摘要的表格,当我点击一个按钮时,我会弹出一个模式窗口,其中包含关于该项目的附加信息。不幸的是,由于某些原因,Blazor不会总是弹出模态。我已经将代码简化为一个Console.WriteLine(“personid:Id”),我仍然看到了这个问题 @foreach(var p in people){ <tr> <td><button type="button" class="btn btn-outline-i
@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>
}
@foreach(人的变量p){
@p、 名字
@p、 姓氏
}
然后在代码部分
List<Person> people { get; set; }
...
async Task ShowPerson(Person p){
Console.WriteLine("Click");
selectedPerson = p;
await _jsRuntime.InvokeVoidAsync("toggleModal", "personModal");
}
列出人{get;set;}
...
异步任务显示人员(人员p){
Console.WriteLine(“单击”);
selectedPerson=p;
wait_jsRuntime.InvokeVoidAsync(“toggleModal”、“personModal”);
}
然后在我的js文件中,toggleModal只执行一个$(“#“+id).modal('toggle')代码>
现在,当我观看控制台时,我可以单击一个按钮,控制台中可能没有显示任何内容,并且模式没有打开。或者单击显示在控制台中并弹出模式。有没有人遇到过这个问题,或者从上面的代码中看到任何明显的东西
感谢所有遇到这一点的人,感谢他们像我一样盲目。验证您的@onclick
是否在实际按钮上,而不是范围内
坏的:
好:
老实说,我有点惊讶它竟然没有开火。你几乎可以在任何东西上点击@onclick。当我点击图标时,它确实会触发,但因为我有时点击按钮而不是图标,所以它不会触发,所以问题似乎是间歇性的,所以它有点像点击范围中的“环绕”元素。这是有道理的。我很确定如果是一个div,它在任何地方都能用。我经常这样做——我会在div上加一条下划线和一个蓝色,文本看起来是可点击的——然后我会使用@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>