2012-07-25 66 views
1

我有一個使用Url.Action填充圖像src的JQuery日期選擇器。ASP.NET MVC ActionResult未在IPad上顯示圖像

<script type="text/javascript"> 
     $(function() { 
      $('#datepicker').datepicker({ 
       inline: true, 
       altField: '#selecteddate', 
       altFormat: 'dd-mm-yy', 
       onSelect: function() { 
        var date = $('#datepicker').datepicker('option', 'dateFormat', 'yy-mm-dd'); 
        $('#diary img').attr(
         'src', 
         '<%= Url.Action("Image") %>/' + date.val().toString()); 
       } 
      }); 
     });   
    </script> 

圖像是在存儲器中的位圖使用我的控制器上的以下動作轉換爲PNG

public class ImageResult : ActionResult 
{ 
    Image image; 

    public ImageResult(Image image) 
    { 
     this.image = image; 
    } 

    public override void ExecuteResult(ControllerContext context) 
    { 
     context.HttpContext.Response.Clear(); 
     context.HttpContext.Response.ContentType = "image/png"; 

     image.Save(context.HttpContext.Response.OutputStream, ImageFormat.Png);       
     image.Dispose(); 
    } 
} 

所述的圖像顯示細然而所以它示出了作爲圖像的src不具有延伸/ 2012-07-11如何添加擴展名.png?因爲沒有我相信它停止它顯示在Ipad上。

+1

您是否使用該圖片的默認路由模式網址是什麼?請張貼在瀏覽器上呈現的路由和相應的URL。至少,您應該能夠使用自定義路線顯示.png擴展名。 – danludwig 2012-07-25 12:14:36

+0

是的,我使用默認的路由模式 - 圖像出來如下非常確定我只需要在日期的末尾添加.png。謝謝 – 2012-07-25 15:33:31

回答

0

你可以重新創建一個具有.png擴展內置的一個新途徑:

routes.MapRoute(
    "Image", // Route name 
    "tunnel/image/{id}.png", // URL with parameters 
    new { controller = "Tunnel", action = "Image" }    
); 

和更新您的JavaScript像這樣:

'tunnel/image/' + date.val().toString() + '.png';