我需要帮助才能让我的图像在文字控件中创建的标记中正确显示。
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));
}
答案 0 :(得分:1)
您可以使用获取productName的通用处理程序(.ashx)
并在Context.WriteBinary()
文件中使用ashx
方法。您应该将productName
作为查询字符串传递给ashx
:
<img alt="Product image" src="~/somewhere/ImageHandler.ashx?productName=" + productName + "/>"
答案 1 :(得分:0)
您应该像现在一样将图片的网址放在img
的{{1}}属性而不是src
数组中:
byte
为了实现它,请查看有关如何创建ASP.NET ASHX处理程序并最终使用URL检索图像的答案:
答案 2 :(得分:0)
根据您的浏览器需求和图像大小(我不建议将其用于大文件),您可以将其嵌入为base64字符串。请看:Embedding base64 images
答案 3 :(得分: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;
}
}