0

私がやろうとしているのは、ドロップダウンリストが変更されたときに、jquery.post() メソッドを呼び出して、json を使用して画像を取得することです。そのコードは次のとおりです。

$.post('@Url.Action("GetImage", "urunler")', { cId: $(this).val(), pId: prd }, function (data) {
                $(".prd-image img").attr("src", data.ImgSmall);

            });

コントローラーコード:

[HttpPost]
        public ActionResult GetImage(string cId, string pId)
        {
            long productId = long.Parse(pId);
            long colorId = long.Parse(cId);

            var productViewModel = new ProductViewModel();

            productViewModel.PTemp = productTempRepository.Get(x => x.ColorId == colorId && x.ProductId == productId);
            productViewModel.PImage = productImageRepository.GetMany(x => x.TempId == productViewModel.PTemp.Id);

            return Json((from obj in productViewModel.PImage select new { ImgSmall = obj.ImgSmall.Remove(0,1), ImgBig = obj.ImgBig.Remove(0,1) }), JsonRequestBehavior.AllowGet);

        }

しかし、画像を設定しようとするたびに、src "data.ImgSmall" は定義されていません。間違いはどこですか?

ありがとう

4

1 に答える 1

3

jsonの結果としてリストを返すようです:

 return Json((from obj in productViewModel.PImage select new { ImgSmall = obj.ImgSmall.Remove(0,1), ImgBig = obj.ImgBig.Remove(0,1) }), JsonRequestBehavior.AllowGet);

したがって、「データ」はリストになります...

もしあなたがそうするなら:

 return Json((from obj in productViewModel.PImage select new { ImgSmall = obj.ImgSmall.Remove(0,1), ImgBig = obj.ImgBig.Remove(0,1) }).First(), JsonRequestBehavior.AllowGet);

その後、それは動作するはずです...

于 2012-02-17T14:24:23.123 に答える