Jquery.post с mvc 3 не возвращает значение - PullRequest
0 голосов
/ 17 февраля 2012

Что я пытаюсь сделать, так это то, что при изменении выпадающего списка я вызываю метод 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" не определено.Где ошибка?

Спасибо

1 Ответ

3 голосов
/ 17 февраля 2012

Кажется, вы возвращаете список как результат 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);

Тогда это должно работать ...

...