Sql server 如何使用ASP.NET MVC显示文件夹中的图像

Sql server 如何使用ASP.NET MVC显示文件夹中的图像,sql-server,asp.net-mvc,image,entity-framework,Sql Server,Asp.net Mvc,Image,Entity Framework,我在项目外部创建实体 我的实体职位 [Table("Post")] public partial class Post { public int PostID { get; set; } [Required] [StringLength(256)] public string Title { get; set; } [StringLength(256)] public string Description { get; set; }

我在项目外部创建实体

我的实体职位

[Table("Post")]
public partial class Post
{
    public int PostID { get; set; }

    [Required]
    [StringLength(256)]
    public string Title { get; set; }

    [StringLength(256)]
    public string Description { get; set; }

    [StringLength(256)]
    public string Picture { get; set; }

    public int CategoryID { get; set; }

    [StringLength(10)]
    public string ViewNumber { get; set; }

    public int UserID { get; set; }

    public DateTime CreateDate { get; set; }

    public int LikeNumber { get; set; }

    public int? CommentID { get; set; }
}
我的邮政管理员

[HttpPost]
    public ActionResult UpPost(Post model, HttpPostedFileBase txtImg)
    {
            var db = new ShareImageDbContext();

                if (ModelState.IsValid)
            {
            if (txtImg != null)
            {
                txtImg.SaveAs(HttpContext.Server.MapPath("~/Images/")
                                                      + txtImg.FileName);
                var post = new Post();
                post.PostID = model.PostID;
                post.Title = model.Title;
                post.Description = model.Description;
                post.CategoryID = model.CategoryID;     
                var userSession = new UserLogin();                    
                userSession = (UserLogin)Session[ShareImage.Common.CommonConstants.USER_SESSION];
                post.UserID = userSession.UserID;                     
                post.CreateDate = DateTime.Now;
                post.Picture = txtImg.FileName;
                db.Posts.Add(post);
                db.SaveChanges();

                    return RedirectToAction("Index", "Homeuser");
                }

                    else
            {
                ModelState.AddModelError("", "Đăng ảnh thất bại!");
            }
        }
        return View(txtImg);
        }
我的帖子数据库

我想在视图中显示所有帖子。我称之为模型如下

@model IEnumerable<Model.EF.Post>
但它有一个错误:

对象引用未设置为对象的实例

我可以在Images文件夹中显示我的图像,如下代码所示,但我想显示Post表的更多属性,如标题、描述、CreateDate

@foreach(var imgPath in Directory.GetFiles(Server.MapPath("~/Images")))
{
   var img = new FileInfo(imgPath);
   <img src="@Url.Content(String.Format("~/Images/{0}", img.Name))" />
   <hr />
}
@foreach(Directory.GetFiles(Server.MapPath(“~/Images”))中的var-imgPath)
{
var img=新文件信息(imgPath);

}

请指导我如何修复它,谢谢

在视图中,对字符串和
“alt=”“/>
用于图像


由于您没有设置或创建对象而导致的问题。您有一个具有空值的引用。它在视图或控制器中引发。如果您提供错误消息,那就太好了。

我感觉您的
ModelState.IsValid
正在返回
false
并且您的此行
返回视图(txtImg)
正在执行。我不确定您的视图中有什么。但通常将已发布的文件返回到视图是没有意义的(您有一个视图模型正在发布到操作方法)。如果正在成功重定向到索引操作,则在视图中使用该属性之前,需要确保正在设置/初始化任何可能为
NULL
的属性。
@foreach(var imgPath in Directory.GetFiles(Server.MapPath("~/Images")))
{
   var img = new FileInfo(imgPath);
   <img src="@Url.Content(String.Format("~/Images/{0}", img.Name))" />
   <hr />
}