对于JavaScript和CSHTML不normaly工作(For in javascript an

2019-11-04 05:02发布

我工作的asp.net MVC和我有一个奇怪的问题,我真的不明白...

在我CSHTML的开始,我已创建这样一个INT:

@
{
int i = 0;
}

在我的代码然后进一步,我使用这个变量在JavaScript部分可以创建一个谷歌的图表与列的数量可变的,我做这种方式:

for(var j=0; j<@ViewBag.nbTechs;j++)
{
    data.addColumn('number', '@ViewBag.techs[i]');
    @if (i != 1000)
    {
        i = i+1;
    }
}  
 @ViewBag.nbTechs is equal 9 

@ViewBag.techs is a list of strings that contains 9 strings

此代码创建我9列,但只在第一个字符串的名称图表@ViewBag.techs变量...

我检查,如果varible i很好更新,是的,它是......所以,我真的不明白为什么它只是采取的第一个名字...

希望有人能帮助我,谢谢你提前

编辑:输出(列表中的第一个字符串)

Answer 1:

'@ViewBag.techs[i]'是被发送到鉴于其之前在服务器上解析的剃刀代码,所以计算结果为'@ViewBag.techs[0]' (查看源代码来确认),所以你永远只得到列表中的第一个值。

删除您的@{ int i = 0; } @{ int i = 0; }代码,而是集合转换你一个javascript数组

var techlist = @Html.Raw(Json.Encode(ViewBag.techs))
for(var j = 0; j < @ViewBag.nbTechs; j++)
{
    data.addColumn('number', techlist[j]);
}  


文章来源: For in javascript and cshtml not working normaly