2016-10-09 1 views
-3

J'ai un problème avec mon service de petit site Web. Je dois coder un mur avec le message et commenter de l'utilisateur. J'ai un certain modèle pour la Poste:Mur plein de poste et commenter dans .NET

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; } 
} 

et Commentaire:

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; } 
} 

Comment pourrais-je afficher tous les messages et son commentaire dans la vue?

Répondre

-1

Lorsque j'ai besoin de mélanger des choses provenant de différents modèles, j'utilise généralement un ViewModel.

C'est un modèle fait pour des vues spécifiques où je mets des données de diverses sources ou des calculs particuliers.

Fondamentalement, c'est juste un autre modèle, avec les champs nécessaires.

Dans votre cas, il pourrait être quelque chose comme

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; } 
} 

Et dans votre action, vous passerez à la fois un message et un modèle de commentaire, assing à PostAndComment les différents champs à la fois et passer que à la vue.

L'action doit être quelque chose comme

ActionResult PostComment(Post post, Comment comment) 
{ 
    PostAndComments postcomment = new PostAndComments 
     { 
      IDPost = post.ID, 
      IDComment = comment.ID, 
      etc... etc... 
     } 
} 

Rendre throught une vue partielle ajouterait une complexité inutile.

+0

Ok, mais comment afficher tout Poster + commenter une page? Comment cela pourrait-il ressembler? Comment ça ressemble à un contrôleur? – Zarobiek

+0

Ok, je vais essayer: D – Zarobiek

+0

@Zarobiek Une fois que vous êtes dans la page cshtml, dans lequel vous avez passé un PostAndComments modèle Vous pouvez simplement vous écrire la page html avec divs séparés pour les messages et commentaires (ou tout simplement prendre un gabarit quelque part) et appeler facilement Model.PostContent et Model.CommentContent où vous avez besoin Notez que tous ces appels de code auront besoin d'un @ devant eux, donc le moteur Razor les appellera C# code –