我在项目之外创建实体 this is solution Explorer
我的实体发布
[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);
}
我的帖子数据库 I inserted some post
我想显示所有Post on View。我将模型称为如下。
@model IEnumerable<Model.EF.Post>
我打电话给foreach
@foreach (var item in Model)
但它有一个错误:
对象引用未设置为对象的实例。
我可以在Images文件夹中显示我的图像作为代码如下,但我想显示Post表的更多属性,如Title,Discription,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 />
}
请指导我如何修复它,谢谢!
答案 0 :(得分:0)
在您的视图中,使用String.IsNullOrWhiteSpace
表示字符串和
图片<img src="<%= ResolveUrl(item.Picture) %>" alt="" />
由于您未设置或创建对象的某处而导致的问题。您的引用具有空值。它在视野或控制器中升起。如果您提供错误消息,那就太好了。