blazor变量参数传递给onclick函数

blazor variable argument passing to onclick function

我想将int i传递给每个列表项的按钮onclick函数。我希望" clickItem"函数的对应列表项将收到0..2。但事实证明,它总是收到3作为参数。似乎在渲染for循环时未评估clickItem(i)中的变量i。我尝试将其更改为" clickItem(@i)",但仍然相同。我该怎么办? (我正在使用blazor服务器端,.net core 3预览5)

1
2
3
4
5
6
7
8
        @for (int i = 0; i < 3; i++)
        {
           
<li>
 item @i <button onclick=@(() => clickItem(i))>Click</button>
</li>

        }

enter

1
2
3
4
5
6
7
8
9
@for (int i = 0; i < 3; i++)
{
    int copy = i;
   
<li>
 item @i <button onclick=@(() => clickItem(copy))>Click</button>
</li>

}


我尝试了这个,并且奏效了。希望对您有所帮助。

1
2
3
4
5
6
7
8
9
 @foreach (var item in ListOfUser)
            {
                <tr>
                    <td>@item.FirstName</td>
                    <td>
                        <button @onclick="(() => GetDetail(item.UserId))"> Click</button>
                    </td>
                </tr>
            }