0

リストにデータを追加し、コントローラーで 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);
  });

});

私はfirebugの準備ができてそれを追跡しました.JSONはうまく機能します. 問題 :

proValByDep.BrandImage is undefined.

解決策をお願いします。本当にありがとう。

4

2 に答える 2

1

問題は、返されたデータを保持するパラメーターの代わりに、リクエストに渡すメソッドでdata変数を使用していることだと思います..each()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);
  });
});
于 2012-04-25T10:48:16.400 に答える
1

data.ja直接ではなく、配列であるため、おそらくループする必要がありますdata

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

または、名前付きのプロパティでラップするのではなく、配列を直接返すようにサーバー側を変更することもできますja

return Json(prom, JsonRequestBehavior.AllowGet);
于 2012-04-25T08:49:57.013 に答える