3

ここで、オブジェクトからプロパティ値を取得する方法についていくつかのトピックを読みました。

私の場合、コントローラーに何かがあります:

[HttpPost]
public ActionResult GetSomething() {

return Json( new {
     data = AModel.Get()
     }, JsonRequestBehavior.AllowGet );

}

モデル内:

public static List<Hashtable> Get() {
    List<Hashtable> list = new List<Hashtable>( 0 );
    Hashtable table = new Hashtable();
    table.Add( "ITEM_1", "Value1" );
    table.Add( "ITEM_2", "Value 32" );
    list.Add( table );

    table = new Hashtable();
    table.Add( "ITEM_1", "Value22" );
    table.Add( "ITEM_2", "Other" );
    list.Add( table );

   return list;
}

そしてJavascriptで:

var test;
 $.ajax({
    type: "post",
    url: "Action/Controller",
    data: {},
    dataType: "json",
    async: false,
    success: function (data) {
            test = data.data;
         },
    complete: function () {
            console.log(test);              
 });

次の画像のようにコンソールに入りました。

ここに画像の説明を入力

プロパティの値ITEM_1と結果を取得したい:Value1、Value22。

で試しました

for(var key in test) {
console.log(test[key].ITEM_1);
//console.log(test[key].ITEM1);
}

しかし、うまくいきません。

もちろん、ITEM_1キーの名前をITEM1(モデル内で)に変更しましたが、結果は同じです。undefinedしかし、コンソールにはすべてのオブジェクトの値が表示されます。

ここに画像の説明を入力

お願い助けて。

4

1 に答える 1

3

testオブジェクトではなく配列です。次のように配列をループします。

var testLength = test.length;            //caching length, performance benefit
    i, item1;

for(i=0;i<testLength;i++){
    item1 = test[i].Properties.ITEM1;
}
于 2012-05-07T09:02:58.990 に答える