Piranha CMS:如何查找页面的子页面

Posted

技术标签:

【中文标题】Piranha CMS:如何查找页面的子页面【英文标题】:Piranha CMS: how to find child pages for a page 【发布时间】:2019-07-11 19:12:23 【问题描述】:

如何找到子页面项,以从块中获取其标题和链接? (页面在管理器中的结构方式)

我对站点地图进行了一些尝试,但在实例化对象时遇到了一点问题。我该怎么做?

遍历站点地图中的所有节点以找到正确的页面会有点麻烦。有没有更好的办法?

【问题讨论】:

【参考方案1】:

要获得您只需调用的站点地图结构:

var sitemap = api.Sites.GetSitemap();

如果您有多个站点,则需要指定所需站点,否则返回默认站点的站点地图。

var sitemap = api.Sites.GetSitemap(siteId);

获得站点地图后,您可以从当前页面获取部分站点地图,并使用以下代码对子页面做一些有趣的事情:

var sitemap = api.Sites.GetSitemap();
var partial = sitemap.GetPartial(myPage.Id);

foreach (var subpage in partial)

    // Do your stuff here!

最好的问候

哈坎

【讨论】:

谢谢,这让我更接近目标,但没有接近终点线。在 Block 模型中,我无法找到 Page Id - 试图通过 Request 对象获取 url-path,找到 Slug,但这只是返回类似“/page/”的内容,而不是显示的 url在浏览器中。 您好!在从属性 Url 从 IApplicationService 重写之前,您可以获取当前 url。如果您从视图中访问它并从我们的模板之一创建了您的项目,则此服务将注入到 _ViewImports 中的变量 WebApp 中,在这种情况下,您可以使用 WebApp.Url 获取它

以上是关于Piranha CMS:如何查找页面的子页面的主要内容,如果未能解决你的问题,请参考以下文章

在 Piranha CMS 中访问全球站点区域

ASP.NET MVC 的 Piranha CMS 路由问题

Piranha CMS - 登录问题

Piranha CMS 本地化

显示块的 Piranha CMS MVC 标签问题

现有 MVC 5 站点上的 Piranha CMS