【问题标题】:Dojo Dialog show imageDojo 对话框显示图像
【发布时间】:2013-12-13 15:12:06
【问题描述】:

我正在尝试使用 Dojo Dialog 来显示图像,但我的代码后面或前端有问题。我认为这是内容类型的问题。

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

谁能帮帮我?

【问题讨论】:

  • 你能把JS dojo对话框代码贴在这里吗?另请附上ASP.net生成的HTML结果代码(带有dojo对话框JS)。
  • 感谢您的评论,但很难获得代码,因为这个 CMS 隐藏了很多东西。但我在 dojo 上使用 append 方法解决了。

标签: asp.net-mvc content-type dojo


【解决方案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

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多