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 回答