我的模型中有ArrayList,想在javascript中迭代它。我正在使用以下代码但它给我错误:CS0103:当前上下文中不存在名称'i'
for(var i=0; i <= <%=Model.KeyList.Count%>; i++)
{
alert('<%=Model.KeyList[i]%>');
}
我该如何解决这个问题?
答案 0 :(得分:1)
这不起作用。在执行javascript代码之前,在服务器端执行c#代码,因此在执行c#代码时变量i不存在。我不能告诉你如何解决它,因为你没有说你想做什么。但是你需要在c#循环中迭代列表服务器端,或者在js循环中迭代客户端。你不能将它们混合在一起。
答案 1 :(得分:0)
该代码不起作用。 foreach在客户端评估,&lt;%...%&gt;指令在服务器上进行评估。因此“i”不存在,它只存在于客户端的浏览器中。
答案 2 :(得分:0)
如果要使用JS解析列表,则需要将其转换为javascript数组。您需要生成的最终结果是{}符号中的对象集合(如{ name: "a", value: "b" }
中所示)并用[]包装。
因此,您需要生成此客户端代码并在客户端上解析它,或者将其废弃并在服务器上处理它。或者,创建一个返回JsonResult并返回数组的动作结果; MVC框架应该为您自动转换;你必须通过AJAX通过JavaScript请求。
HTH。