2016-03-11 47 views
-2

是否有可能在C#中執行循環來查找特定頁面的父ID?循環找到父ID

這裏是場景:我正在開發麪包屑。對於每一頁,我需要父母的ID,所以我可以用它來填充一個URL和頁面標題的列表。

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); 
} 
+2

我已經多次重讀您的問題,並且正在努力查看您到底在找什麼?什麼阻止你循環? –

+0

我相信這當前的代碼將只會得到第一個父母身份證,但不是祖父母,我不是一個真正好的循環,所以有辦法實現一個。 – jsg

+1

現在我正在閱讀它第6次... –

回答

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; 
     } 
    }