0

我需要帮助才能让我的图像在文字控件中创建的标签中正确显示。

        foreach (DataRow dr in dt.Rows)
        {
            string productName = dr["PRO_Name"].ToString();
            string productPrice = dr["PRO_Price"].ToString();
            byte[] productImg = (byte[])dr["PRO_Img"];

            string sProduct = @"<div class='four-shop columns isotope-item'>
                                 <div class='shop-item'>
                                  <figure>
                                  //I need the image from the data base here:
                                  <img src='" + productImg + "' alt='' />
                                  <figcaption center code herelass='item-description'>
                                  <h5>" + productName + "</h5>
                                  <span>R" + productPrice + "</span>
                                  <a href='#' class='button color'>Add to    Cart</a</figcaption>
                                  </figure>
                                  </div>
                                  </div>";
           //Im using a literal control to create the DIV dynamically for each product in the database.
           productPanel.Controls.Add(new LiteralControl(sProduct));
        }
4

4 回答 4

1

您可以使用通用处理程序(.ashx)来获取产品名称并在文件中使用Context.WriteBinary()方法。ashx您应该作为查询字符串传递productName给:ashx

<img alt="Product image" src="~/somewhere/ImageHandler.ashx?productName=" + productName + "/>"
于 2013-07-13T10:54:06.993 回答
0

根据您的浏览器需求和图像大小(我不建议将其用于大文件),您可以将其嵌入为 base64 字符串。看:嵌入base64图像

于 2013-07-13T09:49:15.243 回答
0

尝试这个

看法:

<img src="@Url.Action("GetImg", "Home", new {id= Model.id})" alt="" width="150" height="200"/>

控制器:

    public FileContentResult GetImg(int id)
    {
        byte[] byteArray = new Model().GetImgByID(id);

        if (byteArray != null)
        {
            return new FileContentResult(byteArray, "image/png");
        }
        else
        {
            //something failed, image not found!
            return null;
        }
    }
于 2013-07-15T09:41:22.847 回答
0

您应该将图像的 URL 放在img'src属性中,而不是byte像现在这样的数组:

//Wrong:
byte[] productImg = (byte[])dr["PRO_Img"];
<img src='" + productImg + "' alt='' />

为了实现它,请查看有关如何创建 ASP.NET ASHX 处理程序并最终使用 URL 检索图像的答案:

使用 C# 在 ASP.net 中显示数据库中的图像

于 2013-07-13T09:42:49.170 回答