javascript - 对于在 javascript 和 html 中无法正常工作

标签 javascript asp.net asp.net-mvc razor

我正在开发 asp.net MVC,但我遇到了一个我真的不明白的奇怪问题...

在我的 cshtml 的开头,我创建了一个像这样的 int :

@
{
int i = 0;
}

然后在我的代码中,我在 JavaScript 部分中使用此变量来创建具有可变列数的 Google 图表,我这样做:

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 变量中第一个字符串的名称...

我已经检查了变量 i 是否已正确更新,是的,确实如此...所以我真的不明白为什么它只采用名字...

希望有人能帮助我并提前谢谢

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

enter image description here

最佳答案

'@ViewBag.techs[i]' 是 razor 代码,在发送到 View 之前在服务器上进行解析,因此计算结果为 '@ViewBag.techs[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]);
}  

关于javascript - 对于在 javascript 和 html 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36471779/

相关文章:

asp.net - 图像在 asp.net 中不显示

Asp.net mvc4 布局中带有模型的部分 View

c# - 你调用的对象是空的。 - 控制集合

asp.net-mvc - 如何在 MVC 中更改由 @Html 帮助程序生成的 'data-val-number' 消息验证

javascript - 将 js 设置为从 ASP.NET 应用程序中的服务器执行

javascript - 更改链接颜色 onclick 而不使用 PreventDefault()

javascript - JS 日期和 jQuery UI slider 很奇怪

c# - 从数据库中获取 pdf 文件以在 asp.net mvc 中查看

c# - 如何自动附加到十进制数据类型 DisplayFormatAttribute

javascript - 当我单击日期两次时,bootstrap datepicker 无效日期问题?