asp.net mvC语言 如何按父ID对列表元素进行分组,就像c# MVC4应用程序中的树一样



我有这样的注释模型:

public class Comment
    {
        public int? ParentId { get; set; }
        public string Text { get; set; }
        public int ProjectId { get; set; }
        public int UserWhoTypeId { get; set; }
    }

我想在parentID下显示注释。父评论将出现在div中,子评论将出现在

<ul>
   <li>
      child comments go here
   </li>
</ul>

例如

  <ul>
       <li>
          <div>
               parent comments go here
          </div>
          <ul>
             <li>
                 child comments go here
             </li>
           </ul>
       </li>
  </ul>

我首先需要用LINQ 收集注释,如树,然后像上面显示的那样应用它。任何链接或建议,请。

编辑:

我创建模型为

public class CommentListModel
{
    public Comment Comment{ get; set; }
    public List<Comment> Childs { get; set; }
}

我收集了所有的评论在一个列表:

List<CommentListModel>  CommentHierarchy = MyService.GetCommentHierarchy();

现在,我需要在视图中显示类似树层次结构的CommentHierarchy。请帮助。

您可以将CommentListModel的" children "属性更改为CommentListModel的集合,如下所示:

public class CommentListModel
{
    public Comment Comment { get; set; }
    public List<CommentListModel> Childs { get; set; }
}

为CommentListModel创建一个局部视图作为显示模板(将文件放在DisplayTemplates文件夹下):

@model CommentListModel
<ul>
    <li>
        <div>@Html.DisplayFor(m => m.Comment.Text)</div>
        @Html.DisplayFor(m => m.Childs)
    </li>
</ul>

然后在父视图中调用:

 @Html.DisplayFor(m => m)

假设父视图的模型是CommentListModel对象的集合。

这将允许你的列表递归到尽可能深的集合

相关内容

  • 没有找到相关文章

最新更新