Я работаю над книгой Стивена Сандерсона (Pro ASP.NET MVC 3). Я на р. 294. Я скопировал слово за словом в книгу, но оно не работает.
Это метод действия
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);
}
//...Save product in the database using Entity Framework
}
}
Это как вывести изображение на страницу бритвы
<img width="150" height="150"
src = "@Url.Action("GetImage", "Home", new { Model.ProductID })" />
И, наконец, GetImage
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;
}
}
EDIT
Я проследил весь процесс (во время отладки) от начала до конца, и вот что я могу сказать:
После того, как я нажал кнопку «Сохранить» в представлении, объект HttpPostedFileBase не является нулевым.
После вызова метода db.SaveChanges () в таблицу базы данных добавляется одна строка.
Когда я вызываю GetImage, он не возвращает ноль.
Но на изображении изображение не отображается
Спасибо за помощь