2012-04-25 7 views
0

의 asp.net MVC의 관점에서 JSON 결과를 반복하고, 내 컨트롤러에서 JSON으로 반환 할 수 없습니다내가 목록에 데이터를 추가

이 내 시야에
List<ProductListingModels> prom = new List<ProductListingModels>(); 
ProductListingModels product = new ProductListingModels(); 

foreach (var item in ien_item) 
{ 
    if ((item.Brand.IsAuthorized == true) && ((HelperClass.ICEContact.PathBrandImages + 
    item.Brand.Image) != null)) 
    { 
    product.BrandImage = HelperClass.CheckImageUrlExist(item.Brand.Image); 
    } 
    else 
    { 
    product.BrandImage = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
    } 
} 

prom.Add(product); 
return Json(new 
{ 
    ja = prom.ToList() 

}, JsonRequestBehavior.AllowGet); 

:

$.getJSON("ProductListing/Index", data, function (product) { 
    $.each(data, function (index, proValByDep) { 
    alert(proValByDep.BrandImage); 
    }); 

});

방화범이 끌려서 추적했는데 JSON이 잘 작동합니다. 문제 :

proValByDep.BrandImage is undefined. 

모든 해결책을 참조하십시오. 정말 고마워.

+0

쇼 어를 전달하는 것이 at json – Mediator

+0

'{ "ja": [{ "BrandImage": "http : // pd : 8080/Product/Brand/28.PNG"}}}' – Nothing

답변

1

ja 나는 proble 당신이 each() 방법에 data 변수를 사용하고 있음을 믿습니다 , 당신은 .. 대신 반환 된 데이터를 보유하고있는 product 매개 변수의 요청에

$.getJSON("ProductListing/Index", data, function (product) { 

    // changed data to product below and also added .ja as you want to access its value 
    $.each(product.ja, function (index, proValByDep) { 
    alert(proValByDep.BrandImage); 
    }); 
}); 
+0

고맙습니다. 이제는 잘 작동합니다. – Nothing

1

data이 아닌 배열로 배열 된대로 data.ja을 루프해야합니다.

$.getJSON("ProductListing/Index", data, function (product) { 
    $.each(data.ja, function (index, proValByDep) { 
    alert(proValByDep.BrandImage); 
    }); 
}); 

또는 직접 오히려라는 이름의 속성을 포장보다, 배열을 반환하는 서버 측을 변경할 수 있습니다

return Json(prom, JsonRequestBehavior.AllowGet); 
+0

나는 첫 번째 해결책을 사용했지만, 그리고 오류'a : 정의되지 않았습니다, 소스 파일 : http : // localhost/jquery.min.js' 오류가 발생했습니다. – Nothing

+0

두 번째 해결 방안 : 경고는 정의되지 않았습니다. – Nothing

+0

잘 작동합니다 - archil