pas*_*hko 3 c# .net-core blazor
我有一个对象数组,其中有一个IsChecked
属性。我用一个数组填满了表格,我在哪里为IsChecked
属性做@bind 输入。
当我尝试切换值时,会出现错误。如果我立即更改 value IsChecked = true
,则勾选复选标记。
for(var i = 0; i < firms.Length; i++)
{
<tr>
<td>@firms[i].ShortTitle</td>
<th scope="row">
<div class="custom-control custom-checkbox">
<input type="checkbox" ... @bind="@firms[i].IsChecked" />
..
</div>
</th>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
错误:
Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer:警告:未处理的异常呈现组件:索引超出数组范围。
System.IndexOutOfRangeException: 索引超出数组范围。at ....<>c__DisplayClass0_1.b__6(Boolean __value) at Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.<>c__DisplayClass22_0`1.b__0(ChangeEventArgs e) --- 从上一个抛出异常的位置开始的堆栈跟踪结束- - 在 Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task) 在 Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle) Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost:错误:电路中未处理的异常LzL8iNZr7FmkJFJRS3QTW3QzJwP9R-p3CaclRHcE1_A.'。
System.IndexOutOfRangeException: 索引超出数组范围。在 Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.<>c__DisplayClass22_0`1.b__0(ChangeEventArgs e) 上的 ...<>c__DisplayClass0_1.b__6(Boolean __value) --- 从上一个抛出异常的位置开始的堆栈跟踪结束 ---在 Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task) 在 Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle)
我究竟做错了什么?
在您的代码中的某处(您没有显示所有代码),“委托”EventCallback 被执行,但“索引超出了数组的边界”;发生这种情况是因为访问索引值的代码总是获得最后一个索引 + 1
要解决这个问题,请使用一个局部变量,您应该为其分配 i 的值,就像这样”
var local = i;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助...
归档时间: |
|
查看次数: |
2620 次 |
最近记录: |