0

サイトのデータベースから画像を表示する必要がありますが、表示したくありません。

私はそのような結果を持っています:私のウェブサイト

ここにある他のすべてのスタックオーバーフロー ヘルプ トピックを既に試しましたが、どれもうまくいきません。

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") 

}

4

1 に答える 1

1

scrの代わりに属性がありますsrc

于 2013-10-31T15:46:22.590 に答える