迭代ViewData数组并使用javascript代码

时间:2012-05-05 17:57:04

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

我有一个数组通过ViewData传递给我的视图。这个数组由我的一个模型的几个元素组成。

我想迭代这些元素并使用javascript代码与对象的元素。

伪代码示例:

for x in ViewData["asdasd"] {

  foo(x.Property)

}

foo是一个javascript函数。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

使用反射获取值。 (编辑,因为我意识到我最初完全误解了这个问题)

@{ 
 Type t = typeof(MyModelType);
 foreach (string x in ViewData["mykey"])
 { 
     var propertyVal = t.GetProperty(x).GetValue(MyModelObject, null);
     @Html.Raw("foo('" + propertyVal + "')");
 }
}

答案 1 :(得分:1)

如果我是正确的,请尝试:

var myArray = new Array();
myArray = <%= ViewData[yourarray] %>;

for (var i = 0; i < myArray.length; i++) {
    foo(myArray[i]);
    //Do something
}

答案 2 :(得分:1)

您可以使用以下内容:

@{
foreach (var firstName in (ViewData["my_list"] as IEnumerable<string>)) {
    @Html.Raw(firstName);<br />
}

}