2012-05-05 21 views
0

我有一個數組通過ViewData傳遞給我的視圖。這個數組由我的一個模型的幾個元素組成。通過ViewData數組遍歷並使用javascript代碼

我想遍歷這些元素並使用對象元素的javascript代碼。

實施例中的僞代碼:

for x in ViewData["asdasd"] { 

    foo(x.Property) 

} 

foo是JavaScript函數。

我怎樣才能做到這一點?

回答

2

使用反射來獲取值。 (編輯,因爲我意識到我完全誤解了起初的問題)

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

如果我是正確的嘗試:

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

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

哪裏的X從何而來? – seth

+0

編輯我的答案。 – glarkou

1

你可以使用這樣的事情:

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

}