Asp.net mvc 如何在Kentico中获取兄弟页面列表

Asp.net mvc 如何在Kentico中获取兄弟页面列表,asp.net-mvc,kentico,Asp.net Mvc,Kentico,我们有一个使用Kentico CMS的MVC应用程序。如何从内容树中的给定节点检索同级页面和子页面?比如说,内容树看起来像 / ---Breads -----Foo Bread ----------Recipe X ----------Nutrition A ---Cookies -----Bar Cookie ----------Recipe Y ----------Nutrition B -----Foo Cookie 当访问者在营养页面上时,他们应该在侧栏上看到配方X 当用户在食谱Y页

我们有一个使用Kentico CMS的MVC应用程序。如何从内容树中的给定节点检索同级页面和子页面?比如说,内容树看起来像

/
---Breads
-----Foo Bread
----------Recipe X
----------Nutrition A
---Cookies
-----Bar Cookie
----------Recipe Y
----------Nutrition B
-----Foo Cookie
  • 当访问者在营养页面上时,他们应该在侧栏上看到配方X
  • 当用户在食谱Y页面上时,他们应该在侧栏上看到营养B
  • 如果他们在Cookie页面上,他们应该在侧栏上看到Bar Cookie和Foo Cookie等等

我发现的一些示例使用宏,我不认为我可以在MVC中使用宏。

如果使用
CurrentDocument.NodeAliasPath
,这将返回您当前所在的文档,并且您的URL将为

/Breads/Foo Bread/Nutrition-A

因此,您可以简单地使用:

CurrentDocument.Parent.NodeAliasPath+“/%”


作为API调用中的路径。

我想说的是,您希望获得当前文档父级在同一级别上的子级, 假设您有
CurrentDocument

    var docs = DocumentHelper
        .GetDocuments()
        .OnSite("CorporateSite")
        .Culture("en-US")
        .Where(d => d.NodeParentID == CurrentDocument.NodeParentID && d.NodeLevel == CurrentDocument.NodeLevel)
        .OrderBy(d => d.DocumentName);

    // Go through the documents 
    foreach (var document in docs)
    {
        Response.Write(HTMLHelper.HTMLEncode(document.DocumentName) + "<br />");
    }
var docs=DocumentHelper
.GetDocuments()
.现场(“公司现场”)
.文化(“en-US”)
.Where(d=>d.NodeParentID==CurrentDocument.NodeParentID&&d.NodeLevel==CurrentDocument.NodeLevel)
.OrderBy(d=>d.DocumentName);
//检查文件
foreach(单据中的var文档)
{
Response.Write(HTMLHelper.HTMLEncode(document.DocumentName)+“
”; }

阅读有关

的详细信息,无论我在哪个页面上,父对象都将返回null。当您已经按NodeParentID进行筛选时,为什么要在节点级别进行筛选?这只是为了确定,因为它可能会带来所有子对象,即子对象的子对象等。