0

ViewData を介してビューに渡される配列があります。この配列は、モデルの 1 つのいくつかの要素で構成されています。

これらの要素を繰り返し処理し、オブジェクトの要素で JavaScript コードを使用したいと考えています。

疑似コードの例:

for x in ViewData["asdasd"] {

  foo(x.Property)

}

foo は JavaScript 関数です。

これどうやってするの?

4

3 に答える 3

2

リフレクションを使用して値を取得します。(最初は質問を完全に誤解していることに気付いたので編集しました)

@{ 
 Type t = typeof(MyModelType);
 foreach (string x in ViewData["mykey"])
 { 
     var propertyVal = t.GetProperty(x).GetValue(MyModelObject, null);
     @Html.Raw("foo('" + propertyVal + "')");
 }
}
于 2012-05-05T18:07:39.527 に答える
1

私が正しい場合は、次のことを試してください。

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

for (var i = 0; i < myArray.length; i++) {
    foo(myArray[i]);
    //Do something
}
于 2012-05-05T18:07:21.383 に答える
1

次のようなものを使用できます。

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

}

于 2013-01-08T12:40:15.700 に答える