我不知道爲什麼,但我無法在我的視圖中顯示數據庫中的圖像。它以圖像的正確分辨率出現,但基本上是可轉換的。我不確定在保存圖像的方式中是否存在錯誤(不應該)或者是否與顯示有關。我很抱歉,如果我的問題是太基本的,但我堅持這個比我必須:(無法在asp.net視圖中顯示數據庫中的圖像
ATTR值: SRC =「數據:圖像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAASwAAADhCAYAAAByfIirAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAANL5JREFUeNrsnQl8VNXZ/8/MZJIJ2UMWIAkJCWFLwhpWAQEBKasoBkUUEBBpq7Xaoi34V2yp/PU =」
Here'how我的模型看起來:
public int CompId { get; set; }
public byte[] ImageData { get; set; }
[NotMapped]
public HttpPostedFileBase UploadImage { get; set; }
[NotMapped]
public string ImageBase64 => System.Convert.ToBase64String(ImageData);
public string CompanyName { get; set; }
public string CompanyAddress { get; set; }
操作方法:
public ActionResult Create([Bind(Include = "CompId,ImageData,CompanyName,CompanyAddress,CompanyCountry,CompanyCity,CompanyPostalCode,CompanyPhoneNumber,EmailCA")] Company company, HttpPostedFileBase UploadImage)
{
if (ModelState.IsValid)
{
byte[] buf = new byte[UploadImage.ContentLength];
UploadImage.InputStream.Read(buf, 0, buf.Length);
company.ImageData = buf;
db.Companies.Add(company);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(company);
}
和視圖:
@model eksp.Models.Company
@{
ViewBag.Title = "Index";
}
<h2>Details</h2>
<div>
<h4>Company</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ImageData)
</dt>
<dd>
<img src="data:image/png;base64,@Model.ImageBase64" />
</dd>
任何幫助將不勝感激。
檢查生成的HTML頁面源代碼:您是否看到該img src屬性值中預期的內容? – uncoder
另外,在cshtml中放置一個斷點並檢查'@ Model.ImageData'數組。你有一些數據嗎? – Alexei
@uncoder。我只是在問題中添加了這個值。 –