如何将图像传递给Eval方法从handler.ashx到imageurl?

时间:2014-07-09 12:44:29

标签: asp.net image eval generic-handler imageurl

我想从数据库中检索图像并在aspx页面中显示。我使用Linq来SQL。和通用处理程序。

Handler2.ashx代码:

public void ProcessRequest(HttpContext context)
{
    if (context.Request.QueryString["id"] != null)
    {
        int id;
        string sid = context.Request.QueryString["id"];
        if (int.TryParse(sid, out id))
        {
            Stream strm = getImage(id);
            byte[] buffer = new byte[4096];
            int i = strm.Read(buffer, 0, 4096);
            while (i > 0)
            {
                context.Response.OutputStream.Write(buffer, 0, 4096);
                i = strm.Read(buffer, 0, 4096);
            }
        }
        else
        {
            //
        }

    }
}


public Stream getImage(int id)
{
    using (DummyDBEntities cntx = new DummyDBEntities())
    {
        var db = from c in cntx.Images
                    where c.imageId == id
                    select c.imageData;
        MemoryStream ms = new MemoryStream();
        byte[] byteArray = new byte[db.ToArray().Length];
        ms.Write(byteArray, 0, db.ToArray().Length);

        return new MemoryStream(byteArray);

    }
}

单击时,Default.aspx页面中的按钮控件重定向到handler1.ashx。从数据库中获取图像的id,并在Default.aspx asp:image control

中显示它
protected void btnGetID_Click(object sender, EventArgs e)
{
  int id=Convert.ToInt32(txtGetID.Text);
  Response.Redirect("Handler2.ashx?id="+id);
  Image1.ImageUrl = '<%# "~/Handler2.ashx?id=" + Eval("imageData"); %>';
}

我该如何编写Eval方法和查询字符串以将图像传递给imageurl?

Image1.ImageUrl = '<%# "~/Handler2.ashx?id=" + Eval("imageData"); %>';

请帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我希望我能理解你的问题。 您想要在Image1中显示处理程序中的图像。为此,您可以执行以下操作

Image1.ImageUrl = ResolveUrl("~/Handler2.ashx?id=" + id);