【发布时间】:2020-03-20 08:27:06
【问题描述】:
如何在列表视图中显示每个项目的图像?我的数据库中有ImageName 和ImagePath 列nvarchar(MAX)。我可以通过在视图模型中使用HttpPostedFileBase 很好地保存。但是在列表中检索它时,没有图像显示!! foreach循环还有其他方法吗,还是我语法错误?
我该如何解决这个问题?
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>
【问题讨论】:
标签: c# sql asp.net-mvc razor