在Javascript中访问ArrayList - ASP.Net MVC2

时间:2010-05-10 20:21:15

标签: javascript asp.net asp.net-mvc arraylist

我的模型中有ArrayList,想在javascript中迭代它。我正在使用以下代码但它给我错误:CS0103:当前上下文中不存在名称'i'

for(var i=0; i <= <%=Model.KeyList.Count%>; i++)
{
    alert('<%=Model.KeyList[i]%>');      
}  

我该如何解决这个问题?

3 个答案:

答案 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。