我已經將圖像與其他信息一起存儲在表中的一列,但是當檢索關於帖子的整個信息時,我有三行顯示圖像。 我正在'斷開img'圖標。ASP.NET MVC:查看存儲的圖像作爲字節[]從Db
型號:
public class Event
{
[Key]
public int Id { get; set; }
public string EventName { get; set; }
public byte[] EventPhoto { get; set; }
}
創建動作:
[Authorize]
[HttpPost]
public ActionResult Create(Event events, [Bind(Exclude = "EventPhoto")]EventController model)
{
if (ModelState.IsValid)
{
using (var database = new EventSpotDbContext())
{
byte[] imageData = null;
if (Request.Files.Count > 0)
{
HttpPostedFileBase poImgFile = Request.Files["EventPhoto"];
using (var binary = new BinaryReader(poImgFile.InputStream))
{
imageData = binary.ReadBytes(poImgFile.ContentLength);
}
}
events.EventPhoto = imageData;
database.Events.Add(events);
database.SaveChanges();
return RedirectToAction("Main");
}
}
return View(events);
}
輸入視圖:
@Html.LabelFor(m => m.EventPhoto)
<input type="file" name="Event" id="fileUpload" accept=".png,.jpg,.jpeg,.gif,.tif" />
顯示屏操作:
public ActionResult DisplayImg(Event events)
{
var bdEvents = HttpContext.GetOwinContext().Get<EventSpotDbContext>();
var userImage = bdEvents.Users.Where(x => x.Id == (events.Id).ToString()).FirstOrDefault();
return new FileContentResult(events.EventPhoto, "image/jpg");
}
顯示視圖:
<div class="container">
<article>
<p> @Model.EventName </p>
<img src="@Url.Action("DisplayImg", "Event")" />
</article>
任何解決我的問題?
你'@ Url.Action(「DisplayImg」,「事件」)'不會將任何數據傳遞到' DisplayImg()'方法和'Event events'參數只是一個默認的實例 - 'EventPhoto'的值是'null'!但是這個方法不應該包含一個參數,它無論如何都是一個模型 - 它需要(比如說)int ID',其中'ID'是'Event'的標識符,並且你從數據庫中獲得'Event'。 (如果你確實嘗試將'Event'的屬性傳遞給該方法,它肯定會因爲查詢字符串限制而拋出異常) –
你是否懶得閱讀註釋 - 你仍然不會傳遞任何東西給方法! –
對不起,這是帖子中的一個錯字,但我已經在代碼中修復了這個錯誤,但仍然無法正常工作。 是這樣它需要是: ? –