我有这样的注释模型:
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对象的集合。
这将允许你的列表递归到尽可能深的集合