2016-04-08 14 views
0

Bu bir kafa karıştırıcısıdır. Tek projede harika çalışan kodum var. Başka bir yerde tekrar kullanıyorum ve işe yaramıyor. Ne kaçırdığımı bilmiyorum. MVC denetleyicimden bir görüntüyü görüntü kontrolüne döndürmeye çalışıyorum. Yöntem geçerli:MVC FileContentResult for Image, ekrana ikili değer döndürür

public ActionResult ScannedImage(ImageSideIndicator side) 
    { 
     try 
     { 
      ScannedItemViewModel model = (ScannedItemViewModel)Session["selectedItem"]; 

      String imagePath = side.ImageSide == 1 ? model.Item.FrontImagePath : model.Item.RearImagePath; 
      byte[] image = CA.ImageStreamer.Image.FromFile(imagePath, System.Drawing.Imaging.ImageFormat.Jpeg); 
      if (image == null) 
      { 
       return File(ImageNotFound(), "image/png"); 
      } 
      else if (image.Length == 0) 
      { 
       return File(ImageNotFound(), "image/png"); 
      } 

      model = null; 
      return File(image, "image/jpeg"); 
     } 
     catch (Exception ex) 
     {     
      return File(ImageNotFound(), "image/png"); 
     } 
    } 

Ve görüntü kontrolü:

img id="imgCheckImage" class="imageBorder" style="max-height:100%;max-width:100%" alt="Check Image" src="Scan/[email protected]&[email protected]" 

görüntü kontrolü yerine görüntünün ikili dışarı yazıyor geri geldiğinde. Dediğim gibi başka bir projede iyi çalışıyor. Bir şey mi unuttum?

cevap

0

Görünüşe göre, görüntü denetimimi içeren kısmi görünümü istemek için ara adımı atlıyordum ve doğrudan görüntü ikili isteğinde bulunuyordu, ve tam olarak sahip olduğum şey buydu. Yani değiştirildi:

$.ajax({ 
     url: '@Url.Action("ScannedImage", "Scan")', 
     type: 'POST', 
     dataType: 'html', 
     cache: false, 
     data: { ImageSide: currentSide }, 
     success: function (data, status, xhr) { 
      if (SessionTimedOut(data)) { 
       RedirectToLogin(); 
       return; 
      } 
      $('#divPanZoomImage').html(data); 
     }, 
     error: function (xhr, status, error) { 
      alert(error); 
     } 
    }); 

için: ShowScannedImage ardından ikili istekleri görüntü kontrolünü içeren bir PartialViewResult döndü

$.ajax({ 
     url: '@Url.Action("ShowScannedImage", "Scan")', 
     type: 'POST', 
     dataType: 'html', 
     cache: false, 
     data: { ImageSide: currentSide }, 
     success: function (data, status, xhr) { 
      if (SessionTimedOut(data)) { 
       RedirectToLogin(); 
       return; 
      } 
      $('#divPanZoomImage').html(data); 
     }, 
     error: function (xhr, status, error) { 
      alert(error); 
     } 
    }); 

.