2012-05-07 2 views
3

여기에서 일부 주제는 객체에서 속성 값을 가져 오는 방법입니다. 다음처럼 내가 콘솔에있어자바 스크립트에서 jash를 통해받은 객체 속성 값을 Controller에서 Hashtable로 가져옵니다.

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

:

[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; 
} 

그리고 자바 스크립트에서

내 경우

, 나는 컨트롤러에서 뭔가를 이미지 :

enter image description here

속성 ITEM_1의 결과 값과 Value1, Value22 값을 가져오고 싶습니다.

나는

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

으로 시도했지만되지 작동합니다.

물론 키는 모델명이 으로 변경되었지만 동일한 결과는 undefined이지만 콘솔에는 모든 개체의 값이 표시됩니다.

enter image description here

도움말 나를하시기 바랍니다.

답변

3

test은 개체가 아니라 배열입니다. 같은 배열을 통해 루프 :

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

for(i=0;i<testLength;i++){ 
    item1 = test[i].Properties.ITEM1; 
} 
+0

도현, 간단 무엇을 : 나는'for' 문 : –

+0

@MichaelSwan'in' 만 배열 객체와하지를 사용하여 루프 테스트를 잊어 버렸습니다. – Joseph

+0

지금 배웠습니다. 감사합니다. :) –

관련 문제