2013-12-11 57 views
0

我试图使用Dojo对话框来显示图像,但我的代码背后或在我的前端有问题。我认为这是Content-type的问题。Dojo对话框显示图像

enter image description here

public ActionResult GetUploadedFile(int FileUploadId) 
    { 
     var photos = new GenericRepository<FileUpload>().Find(x => x.FileUploadId == FileUploadId); 
     if (photos.Any()) 
     { 
      var photo = photos.First(); 
      Response.AppendHeader("Content-Type", "image/jpeg"); 
      return File(new WebImage(photo.Path).GetBytes(), "image/jpeg"); 
     } 

     // Loading a default photo for realties that don't have a Photo 
     return File(new WebImage(HostingEnvironment.MapPath(@"~/Content/images/no-photo100x100.png")).GetBytes(), "image/png"); 
    } 

任何人都可以帮助我吗?

+0

你可以在这里发布JS dojo对话框代码吗?还请附上由ASP.net生成的HTML结果代码(带有dojo dialog JS)。 –

+0

感谢您的评论,但很难得到代码,因为这个CMS隐藏了很多东西。但我解决了在dojo上使用append方法。 – AFetter

回答

1

我觉得你的代码是这样的,

<div data-dojo-type="dijit/Dialog" data-dojo-id="showFileDialog" title="Show Files"> 
    <img src="<% Response.write(GetUploadedFile(1234)) %>"/> 
</div> 

但对于你的情况下,它应该是这样的

<div data-dojo-type="dijit/Dialog" data-dojo-id="showFileDialog" title="Show Files"> 
    <img src="viewFile.aspx?file_id=1234"/> 
</div> 

此外,您可以使用数据URI,这里是示例代码,

var image = new WebImage(@"~\images\myImage.jpg"); 
var base64string = Convert.ToBase64String(image.GetBytes()); 
.... 
<img src="data:image/jpg;base64,<% Response.write(base64string) %>" /> 

参考:http://en.wikipedia.org/wiki/Data_URI_scheme