Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 呈现嵌套注释_C#_Asp.net_Tree_Rendering_Nested Sets - Fatal编程技术网

C# 呈现嵌套注释

C# 呈现嵌套注释,c#,asp.net,tree,rendering,nested-sets,C#,Asp.net,Tree,Rendering,Nested Sets,我通常在一个简单的转发器中呈现评论 我有一个需要嵌套注释的社交应用程序(能够对注释进行注释) 所以我有这样的物体: class Comment { public string Body { get; set; } public User Creator { get; set; } public List<Comment> ChildComments { get; set; } } 类注释 { 公共字符串体{get;set;} 公共用户创建者{get;set;

我通常在一个简单的转发器中呈现评论

我有一个需要嵌套注释的社交应用程序(能够对注释进行注释)

所以我有这样的物体:

class Comment
{
    public string Body { get; set; }
    public User Creator { get; set; }
    public List<Comment> ChildComments { get; set; }
}
类注释
{
公共字符串体{get;set;}
公共用户创建者{get;set;}
公共列表ChildComments{get;set;}
}
我可以使用嵌套中继器吗?这是个好主意吗?我是否需要在递归循环中预呈现HTML并将其发送到文本


不知道该怎么处理这个

听起来您需要在这里使用UserControls。为注释创建一个用户控件,该控件知道如何呈现自身,并且具有0…N个其他CommentUserControl(可能使用转发器呈现)。这实际上是以嵌套的中继器(类似)结束的,但是通过将其中一个中继器封装在UserControl中,它应该可以减少混乱。

您可以使用HTML源代码块,然后遍历注释,为每个注释添加一个开始,然后在每个注释之后,为该注释调用嵌套列表上的迭代器,然后添加结尾

简单的答案是可以将中继器放置在其他中继器的内部,但这会变得很糟糕。是的,您可以将数据源绑定到外部中继器的ItemDataBound中。如果您需要它,您可以通过强制转换RepeaterItem的NamingContainer从内部repeater的ItemDataBound获得外部repeater。不过,这是处理此问题的好方法吗?这听起来非常混乱。嵌套的注释本质上是一棵树,所以递归的东西听起来不错。我不确定我是否能用控件实现这一点。我喜欢这个解决方案的想法,它是可重复和可重用的,但这无助于真正实现该解决方案。所以,让
常量字符串
通过应用string.format()或类似内容的递归循环运行?基本上,将HTML构建为字符串,然后将其分配为文本?是的。在服务器上比所有那些用户控件都便宜得多。