在C#中是否可以执行循环来查找特定页面的父ID?
这是一个场景:我正在开发一个面包屑。对于每个页面,我需要父ID,因此我可以使用它来填充包含网址和页面标题的列表。
1st page --- Parent page --- Grandparent page
我需要能够做一个循环来收集父ID,然后这将填充经过的列表并找到新的父页面父ID(基本上是祖父母页面),然后填充列表直到没有不再了。
目前,当前页面数据存储在var pageInSiteMap
:
var overview = new List<PageDataModel>();
pageInSiteMap // A get command is used to place the data in here
if(pageInSiteMap != null && pageInSiteMap.ParentId.HasValue)
{
var parent = allpages.Data.Items.FirstOrDefault(x => x.Id == pageInSiteMap.ParentId
var parentEntry = new PageDataModel{
pageUrl = parent.Url, pageTitle = parent.Title
};
overview.Add(parentEntry);
}
答案 0 :(得分:1)
我将对此进行一次尝试并假设您需要递归,这是我写的一个简单示例:
public class Page
{
public int PageId { get; set; }
public string PageTitle { get; set; }
public Page Parent { get; set; }
}
public class Class1
{
public List<Page> GetPages(Page currentPage)
{
var ret = new List<Page> {currentPage};
if(currentPage.Parent != null)
ret.AddRange(GetPages(currentPage.Parent));
return ret;
}
}