在数据网格中显示Sql映像时遇到问题。我使用的代码是:
<tbody>
@foreach (var e in @EntitiesResult.Entities)
{
<tr class="col-sm">
<td class="text-sm-center">
<img src="@(@e.Image != null ? (() => GetImage(e.Image)) : "img/no-camera-sign.jpg")" alt="" width="75">
</td>
<td class="text-sm-left">@e.IsahPrimKey</td>
<td class="text-sm-left">@e.ExtraInfo</td>
<td class="hidden-xs hidden-sm">@e.IsahTableName</td>
</tr>
}
</tbody>
所以有一个表列显示图像。这个想法是,如果数据库中没有任何图像存储在特定的行上,就会显示默认图像(no_camera_sign.jpg(。但如果e.image不为null,就会调用GetImage函数。此函数称为:
protected string GetImage(byte[]? image)
{
if (image != null)
{
return $"data:image/png;base64, {Convert.ToBase64String(image)}";
}
else
{
return string.Empty;
}
}
问题是这个函数从来没有被激发过,我不明白。如果图像为空,则显示伪图像。因此,这是有效的,但GetImage函数从未启动。有人能解释一下怎么做吗。。。
此代码只是错误的
<img src="@(@e.Image != null ? (() => GetImage(e.Image)) : "img/no-camera-sign.jpg")" alt="" width="75">
您的意思是:如果e.Image不为null,则返回一个lambda,如果有东西调用了它,则会返回一个Image。。。但没有什么可以称之为"ToStringed"。
试着只调用GetImage方法
<img src="@(e.Image != null ? GetImage(e.Image) : "img/no-camera-sign.jpg")" alt="" width="75">