Как отобразить изображения для каждого элемента в виде списка? В моей базе данных есть столбцы ImageName
и ImagePath
типа nvarchar(MAX)
. Я могу сэкономить, используя HttpPostedFileBase
в представлении модели. Но при получении его в списке, изображение не отображается! Есть ли другой способ для foreach l oop, или у меня неправильный синтаксис?
Как я могу это исправить?
public partial class Course
{
public int CourseId { get; set; }
public string CourseTitle { get; set; }
public string ImageName { get; set; }
public Nullable<double> Price { get; set; }
public string Description { get; set; }
public string ImagePath { get; set; }
}
public class CourseViewModel
{
public string CourseTitle { get; set; }
public HttpPostedFileBase ImageFile { get; set; }
public Nullable<double> Price { get; set; }
public string Description { get; set; }
public string ImagePath { get; set; }
}
public ActionResult Index()
{
var courses = db.Courses.ToList();
return View(courses);
}
public ActionResult Create(FormCollection collection, CourseViewModel courseVM, HttpPostedFileBase ImageFile)
{
try
{
if (!ModelState.IsValid)
{
return View(courseVM);
}
else
{
var image = ImageFile;
if (image!=null && image.ContentLength>0)
{
Course course = new Course();
var imageName = Path.GetFileName(image.FileName);
var imageExtention = Path.GetExtension(imageName);
imageName = imageName + DateTime.Now.ToString("yymmssfff") + imageExtention;
course.ImageName = imageName;
var imagePath = "~/App_Data/Images/" + imageName;
var path = Path.Combine(Server.MapPath("~/App_Data/Images/"), imageName);
image.SaveAs(path);
course.ImagePath = path;
course.CourseTitle = courseVM.CourseTitle;
course.Description = courseVM.Description;
course.Price = courseVM.Price;
db.Courses.Add(course);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View(courseVM);
}
}
}
catch
{
return View();
}
}
Это мой вид списка для столбца изображения:
@model IEnumerable<MyProject.Models.Course>
@foreach (var item in Model) {
<tr>
<td>
<img src="@Url.Content(item.ImagePath)" width="100" height="100" alt="Image" />
</td>
</tr>