Asp.net mvc 如何在Kentico中获取兄弟页面列表
我们有一个使用Kentico CMS的MVC应用程序。如何从内容树中的给定节点检索同级页面和子页面?比如说,内容树看起来像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页
/
---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进行筛选时,为什么要在节点级别进行筛选?这只是为了确定,因为它可能会带来所有子对象,即子对象的子对象等。