我的小网站服务有问题。我必须使用用户的帖子和评论对一些Wall进行编码。 我有一些Post模型:
public class Post
{
public int ID { get; set; }
public string PostContent { get; set; }
public DateTime PostDateTime { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
和评论:
public class Comment
{
public int ID { get; set; }
public string CommentContent { get; set; }
public DateTime CommentDateTime { get; set; }
public int PostId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
public virtual Post Post { get; set; }
}
如何在视图中显示所有帖子及其评论?
答案 0 :(得分:-1)
当我需要混合来自不同模特的东西时,我通常使用ViewModel。
它是针对特定视图制作的模型,其中我放置了来自各种来源或特定计算的数据。
基本上它只是另一个模型,需要字段。
在你的情况下,它可能类似于
public class PostAndComments
{
public int IDPost { get; set; }
public int IDComment { get; set; }
public string CommentContent { get; set; }
public DateTime CommentDateTime { get; set; }
public string PostContent { get; set; }
public DateTime PostDateTime { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
public virtual Post Post { get; set; }
}
在您的操作中,您将传递Post和Comment模型,向PostAndComment提供两者的各个字段,并将其传递给View。
行动应该是
ActionResult PostComment(Post post, Comment comment)
{
PostAndComments postcomment = new PostAndComments
{
IDPost = post.ID,
IDComment = comment.ID,
etc... etc...
}
}
通过部分视图会增加不必要的复杂性。