サイトのデータベースから画像を表示する必要がありますが、表示したくありません。
私はそのような結果を持っています:私のウェブサイト
ここにある他のすべてのスタックオーバーフロー ヘルプ トピックを既に試しましたが、どれもうまくいきません。
Steven Sanderson (pages 256-262) による「Pro ASP.NET MVC Framework」の指示に従っていますが、うまくいきません。
私のクラス:
[HttpPost]
public ActionResult Edit(Product product, HttpPostedFileBase image)
{
if (ModelState.IsValid)
{
if (image != null)
{
product.ImageMimeType = image.ContentType;
product.ImageData = new byte[image.ContentLength];
image.InputStream.Read(product.ImageData,0,image.ContentLength);
}
repository.SaveProduct(product);
TempData["message"] = string.Format("{0} has been saved", product.Name);
return RedirectToAction("Index");
}
return View(product);
}
私の行動方法:
public FileContentResult GetImage(int productId)
{
Product prod = repository.Products.FirstOrDefault(p => p.ProductID == productId);
if (prod != null)
{
return File(prod.ImageData, prod.ImageMimeType);
}
else
{
return null;
}
}
そして私の見解:
意見:
@model SportsStore.WebUI.Domain.Entities.Product
@using(Html.BeginForm("Edit","Admin",FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.EditorForModel()
<div class="editor-label">Image</div>
<div class="editor-field">
@if (Model.ImageData == null)
{
@:None
}
else
{
<img width="150" height="150" scr="@Url.Action("GetImage", "Product", new {Model.ProductID })"/>
}
<div>Upload new image: <input type="file" name="Image" /></div>
</div>
<input type="submit" value="save"/>
@Html.ActionLink("Cancle and return to List","Index")
}