asp.net fancybox加载图片bug

时间:2013-07-06 16:05:36

标签: c# asp.net fancybox

以下是来自Google Chrome的fancybox iframe的输出

以下是来自IE的fancybox ifrom的输出 enter image description here

以下是标记页面代码:

   <script type="text/javascript">
    $(document).ready(function () {
        /*
        *   Examples - images
        */

        $("[id*=img]").fancybox();

        $('.fancyframe').fancybox({
            'titlePosition': 'inside',
            'type': 'iframe',
            'width': 1024,
            'height': 768
        });
    });
</script>
<a class="fancyframe" href="/imgLoader.aspx"><img src="/imgLoader.aspx"></a>

以下是imgLoader.aspx背后的代码

  protected void Page_Load(object sender, EventArgs e)
        {
               byte[] a = Common.GetImage();
   Response.BinaryWrite(a);
        }

为什么chrome只加载字节数组而不是图像,而IE可以显示图像以及如何解决这个错误?

1 个答案:

答案 0 :(得分:1)

因为您只是发送一个字节数组而不是告诉浏览器它是什么。

protected void Page_Load(object sender, EventArgs e)
        {
               byte[] a = Common.GetImage();
               Response.BinaryWrite(a);
        }

尝试添加:

Response.ContentType = "image/jpeg";

在致电Response.BinaryWrite之前

编辑:仅供参考,我通常也会在写出图片之前致电Response.Clear(),然后在Response.End之后致电。{/ p>

所以:

protected void Page_Load(object sender, EventArgs e)
        {
               Response.Clear();
               byte[] a = Common.GetImage();
               Response.BinaryWrite(a);
               Response.End();
        }

为什么呢?只是为了确保ASP.NET没有任何其他垃圾,它发送到浏览器可能会混淆它。