好的,我想要显示一个包含列表、列表的列表和列表的列表的列表...
我无法知道有多少级需要显示,所以我觉得这就是我使用旧递归例程的地方。
不过,我还在犯难如何处理这个问题。
到目前为止,这是我的代码(视图中简化):
@foreach(MyObject item in @Model.ListOfObjects){
<div> @item.Title </div>
//Call recursive function?
}
现在每个对象也有一个List<MyObject>。我想在这个div下面显示每个层级,每个层级使用一个制表符缩进。
我想使用Razor函数来完成这个任务,但需要一些帮助来编写它。以下是我的思路:
@functions{
public static void ShowSubItems(MyObject _object){
if(_object.ListOfObjects.Count>0){
foreach(MyObject subItem in _object.listOfObjects){
// Show subItem in HTML
ShowSubItems(subItem);
}
}
}
}
但正如您所看到的,我明显需要一些帮助 :)
@helper
了。内联函数是一种潜在的替代方案:https://github.com/aspnet/Razor/issues/715#issuecomment-272890766,但看起来可读性要低得多! - Paolo Moretti