C#MVC - 访问模型

时间:2017-04-03 01:29:15

标签: c# asp.net-mvc

我有一个从BlogResponseModel填充的博客,每个博客条目的相关评论都保存在列表中。它看起来像这样:

public class BlogResponseModel
{
    public int Id { get; set; }
    public DateTime SubmissionDate { get; set; }
    public string Title { get; set; }
    public string ImageID { get; set; }
    public string ImageAttribution { get; set; }
    public string Body { get; set; }
    public List<BlogCommentModel> CommentList { get; set; }
}

收集评论,每条评论都与上面的Id元素相关。 BlogCommentModel看起来像这样:

public class BlogCommentModel
{
    public int CommentId { get; set; }
    public int CommentCount { get; set; }
    public DateTime CommentDate { get; set; }
    public string Commenter { get; set; }
    public string CommenterEmail { get; set; }
    public string Comment { get; set; }
    public int BlogParentId { get; set; }
}

在我看来,我使用foreach格式化并显示每个Blog条目,这非常有用。我在哪里找到了如何将相关评论嵌入每篇博客文章的脚下。

以下是View中的当前尝试,让我难过。我做了一个foreach来呈现Blog帖子......

   @foreach (var response in Model)
   {
        // enter all the Blog specifics here...

此时,将呈现博客条目,我们准备添加评论:

<div class="message row">
    <div>
        <H5>Comments</H5>
    </div>
    @foreach (var comment in ?? WHAT ?? (how do I access BlogResponseModel)
    {
        <div class="replies span12">
            <div class="reply">
                <div class="created pull-right">
                    @comment.CommentDate
                </div>
                <div class="created">
                    @comment.Commenter
                </div>
                <div>
                    @comment.Comment
                </div>
            </div>
        </div>
    }
</div>

如何填充BlogResponseModel中的List CommentList中的注释?

提前感谢您的建议。我是MVC的新手,仍然围绕着这个架构。

1 个答案:

答案 0 :(得分:0)

您可以添加

public virtual ICollection<BlogCommentModel> CommentList { get; set; }

而不是

public List<BlogCommentModel> CommentList { get; set; }

然后在视图中

@foreach (var item in Model)
{
    @Html.DisplayFor(modelItem => item.Title)

    @foreach (var myBlogCommentModel in @item.BlogCommentModel)
    {
        @myBlogCommentModel.Commenter
        @myBlogCommentModel.CommenterEmail
    }
}

我希望这会有所帮助。