Asp.net core 为什么';在我的示例(blazor)中,绑定不能使用数组和for循环吗?
我有一个可能需要填充的0-n字段的情况。我通过在Asp.net core 为什么';在我的示例(blazor)中,绑定不能使用数组和for循环吗?,asp.net-core,blazor,Asp.net Core,Blazor,我有一个可能需要填充的0-n字段的情况。我通过在for循环中尝试绑定到List来实现这一点 @for (var i = 0; i < 3; i++) { <input type="text" @bind="TraineeValues[i]" /> } (变量i=0;i
for
循环中尝试绑定到List
来实现这一点
@for (var i = 0; i < 3; i++)
{
<input type="text" @bind="TraineeValues[i]" />
}
(变量i=0;i<3;i++)
{
}
问题在于底层列表值似乎没有更新。
在下面拉小提琴
您需要在循环中创建另一个变量以获得正确的变量
@for (var i = 0; i < 3; i++)
{
var ii = i;
<input type="text" @bind="TraineeValues[ii]" />
}
(变量i=0;i<3;i++)
{
var ii=i;
}
for循环应包含如下局部变量:
@对于(变量i=0;i<3;i++)
{
var localVariable=i;
}
这是标准的C#行为,代码可以访问变量而不是变量的值。您必须定义一个for循环的局部变量;也就是说,这个变量是在循环的每次迭代中定义的,否则它在所有迭代中都是相同的变量,并且当循环结束时,代码将使用变量中包含的相同值
您应该这样定义您的循环:@for(var i=0;i<3;i++){var local=i;}请看:这是否回答了您的问题?是的,谢谢。我不知道我怎么会错过这个。天气不好。
Your for loop should contain a local variable like this:
@for (var i = 0; i < 3; i++)
{
var localVariable = i;
<input type="text" @bind="TraineeValues[localVariable]" />
}