【发布时间】:2021-09-20 09:32:23
【问题描述】:
我在 asp.net C# 中通过 FromBase64String 方法将图像从字节转换并放置在 gridview 字段中,但在 gridview 中它在该位置显示 [object object] 数据图像。
为了更清楚,让我们看看图像,
这是 CustomerMortgageModel 模型,
public class CustomerMortgageModel
{
public Image DesignImage;
}
这是前端代码,
[WebMethod]
public static List<CustomerMortgageModel> GetProductList()
{
string constr = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
List<CustomerMortgageModel> customers = new List<CustomerMortgageModel>();
Service service = new Service();
using (SqlConnection con = new SqlConnection(constr))
{
string qrySelProductDetail = "select * from tbl_MortageDetail " + System.Environment.NewLine;
using (SqlCommand cmd = new SqlCommand(qrySelProductDetail, con))
{
con.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
// Setup image and get data stream together
System.Drawing.Image img;
System.IO.MemoryStream MS = new System.IO.MemoryStream();
if (sdr["DesignImage"].ToString() != "")
{
string k = "i" + sdr["DesignImage"].ToString();
string b64 = k.Replace(" ", "+");
byte[] b;
// Converts the base64 encoded msg to image data
b = Convert.FromBase64String(b64);
MS = new System.IO.MemoryStream(b);
//creates image
img = System.Drawing.Image.FromStream(MS);
}
else
{
img = null;
}
customers.Add(new CustomerMortgageModel
{
DesignImage = img
});
}
}
con.Close();
}
}
return customers;
}
后端代码,
<asp:GridView ID="gv_productdetail" runat="server" CssClass="display compact" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<img src="data:image/jpeg;base64,<%# Eval("DesignImage") %>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
【问题讨论】:
标签: asp.net image gridview webmethod tobase64string