我正在尝试从数据库中显示图像。但是,我收到以下错误。
System.Web.Mvc.UrlHelper.Content(string)的最佳重载方法匹配包含一些无效参数。
这是我的代码:
<table>
<tr>
<td>
Category ID
</td>
<td>
Category Name
</td>
<td>
Category Image
</td>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.CategoryID</td>
<td>@item.CategoryName</td>
<td><img src="@Url.Content(item.CategoryImage)" /></td>
</tr>
}
</table>
答案 0 :(得分:1)
这是我使用的代码:
private static string ImageByteToBase64ImageTag(byte[] array)
{
string base64 = Convert.ToBase64String(array);
return "<img class=\"img-responsive center-block\" src=\"data:image/png;base64," + base64 + " \" />";
}
在这种情况下,使用图像作为base64图像会更容易。我的代码很简单,但你要做的就是传递一个图像数组并得到一个base64字符串。如果格式正确,您甚至可以通过JSON返回图像。您只能在ViewBag或Model中返回以下部分:
ViewBag.ImageData = "data:image/png;base64," + base64String
在你的HTML中
<img src="@Html.Raw(ViewBag.ImageData)" />
或者在您的模型中,只需为图像创建一个字符串属性即可。
答案 1 :(得分:-1)
public ActionResult GetImage()
{
var imageFile = System.Web.HttpContext.Current.Server.MapPath("ImagePathHere");
var srcImage = Image.FromFile(imageFile);
using (var stream = new MemoryStream())
{
srcImage.Save(stream, ImageFormat.Png);
return File(stream.ToArray(), "image/png");
}
}