2012-02-17 62 views
0

什麼,我試圖做的是,當一個下拉列表改變我叫jquery.post()方法使用JSON來獲取圖片。下面是它的代碼:Jquery.post與MVC 3不會返回值

$.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」 是不確定的。錯誤在哪裏?

感謝

回答

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); 

那麼它應該工作...