2013-11-21 5 views
0

Я работал в MVC проекта, и я использовал следующий код для загрузки изображения:Загрузить изображение с веб-метод

cshtml

<img src="@Url.Action("GetImage", new { imageUrl = 
@asset.ImageUrl })" /> 

C#

public void GetImage(string imageUrl) 
     { 

      try 
      { 
       using (WebClientExtension client1 = new WebClientExtension()) 
       { 
        byte[] imageBytes = client1.ExecuteRequest(imageUrl); 
        if (imageBytes.Count() == 0) 
         throw new Exception(); 
        HttpContext.Response.ContentType = "image/jpeg"; 
        HttpContext.Response.OutputStream.Write(imageBytes, 0, imageBytes.Length); 
       } 
      } 
      catch (Exception) 
      { 
       String FilePath; 
       FilePath = Server.MapPath("/Images/no_image.png"); 
       byte[] imageBytes = System.IO.File.ReadAllBytes(FilePath); 
       HttpContext.Response.ContentType = "image/jpeg"; 
       HttpContext.Response.OutputStream.Write(imageBytes, 0, imageBytes.Length); 
      } 

     } 

Все работало нормально, и теперь моя проблема заключается в использовании этой страницы на ascx. Очевидно, @Url.Action("GetRenditionImage", new { renditionUrl = @asset.RenditionUrl }) не будет работать в ascx. Как я могу назвать веб-метод для достижения этого?

ответ

1

Не используйте @ Url.Action. Используйте просто:

<img src="GetImage?imageUrl=sampleUrl" /> 
+0

Ну, в отличие от mvc, мне нужно было указать весь путь к веб-методу, а не только имя действия. Благодарю :) – Sharun