asp.net MVC列表视图中未显示图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net MVC列表视图中未显示图像相关的知识,希望对你有一定的参考价值。

如何在列表视图中显示每个项目的图像?我的数据库中有ImageName类型的ImagePathnvarchar(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>

答案

我首先要看的是正在写入锚标记的src=""属性的文本。在Chrome浏览器中,右键单击应放置图片的位置,然后单击“检查”。

我怀疑这里的字符串格式错误。

以上是关于asp.net MVC列表视图中未显示图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.Net MVC 中将列表对象显示到视图中?

在 ASP.NET MVC 视图中创建列表时出错

带有实体框架和 SQL Server 数据库的 ASP.NET MVC - 图像未显示在视图中......错误显示“无法将“字节”转换为“字符串”

如何缓存将图像返回到asp.net mvc中的视图的操作方法的输出?

如何显示在 Asp.net MVC 中找不到的图像

ASP.NET MVC 如何从嵌套对象的视图模型集合中动态创建表结构