在.NET

时间:2016-10-09 19:44:41

标签: c# asp.net .net asp.net-mvc web

我的小网站服务有问题。我必须使用用户的帖子和评论对一些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; }
}

如何在视图中显示所有帖子及其评论?

1 个答案:

答案 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...
        }
}

通过部分视图会增加不必要的复杂性。