【问题标题】:Accessing ArrayList in Javascript - ASP.Net MVC2在 Javascript 中访问 ArrayList - ASP.Net MVC2
【发布时间】:2010-05-10 20:21:15
【问题描述】:
我的模型中有 ArrayList,并想在 javascript 中遍历它。我正在使用以下代码,但它给了我错误:CS0103:当前上下文中不存在名称“i”
for(var i=0; i <= <%=Model.KeyList.Count%>; i++)
{
alert('<%=Model.KeyList[i]%>');
}
我该如何解决这个问题?
【问题讨论】:
标签:
javascript
asp.net
asp.net-mvc
arraylist
【解决方案1】:
这行不通。 c# 代码在执行 javascript 代码之前在服务器端执行,因此执行 c# 代码时变量 i 不存在。我真的不能告诉你如何解决它,因为你没有说你想做什么。但是您需要在 c# 循环中迭代列表服务器端,或者在 js 循环中迭代客户端。你不能把它们混在一起。
【解决方案2】:
该代码不起作用。 foreach 在客户端进行评估, 指令在服务器进行评估。因此,“i”不存在,它只存在于客户端的浏览器中。
【解决方案3】:
如果要使用JS解析列表,需要将其转换为javascript数组。您需要生成的最终结果是使用 { } 表示法(如 { name: "a", value: "b" })并用 [] 包装的对象集合。
所以你需要生成这个客户端代码并在客户端解析它,或者废弃它并在服务器上处理它。或者,创建一个返回 JsonResult 并返回数组的动作结果; MVC 框架应该为您自动转换;您必须通过 AJAX 使用 JavaScript 请求。
HTH。