我可以使用Kentico宏获取部分路径吗?

我可以使用Kentico宏获取部分路径吗?,kentico,Kentico,我想知道是否可以使用kentico宏(不一定要编写自定义宏)访问重写URL路径的一部分 例如: 我想得到最后一部分(子类别),这样我就可以动态地过滤内容。我想使用宏的原因是,不必仅拥有20多个不同的页面模板,这样我就可以拥有不同的web部件属性。假设您使用的是门户模板,并且不希望在父级上显示“所有子类别中的所有项”列表: 在父页面上创建文章列表web部件-所有子类别的父级 将web部件路径设置为/{0}/{1}/{2}/%(例如,如果您的路径是/Home/Parent/Subcategory)或

我想知道是否可以使用kentico宏(不一定要编写自定义宏)访问重写URL路径的一部分

例如:


我想得到最后一部分(子类别),这样我就可以动态地过滤内容。我想使用宏的原因是,不必仅拥有20多个不同的页面模板,这样我就可以拥有不同的web部件属性。

假设您使用的是门户模板,并且不希望在父级上显示“所有子类别中的所有项”列表:

  • 在父页面上创建文章列表web部件-所有子类别的父级
  • 将web部件
    路径
    设置为
    /{0}/{1}/{2}/%
    (例如,如果您的路径是/Home/Parent/Subcategory)或与您的环境类似的内容
  • 对所有子类别页面的页面模板使用默认设置
    Inherit

  • 这不会在父页面上显示任何内容,子类别将仅显示其自身下的文档。注意:如果您希望在用户向下搜索到
    /{0}/{1}/{2}/item
    时子类别项有自己的视图,则可能需要通过更改模板继承或web部件上的文档类型进行筛选,如果您不希望整个子类别列表也显示在特定于项目的页面上,也可以使用类似的方式。

    您可以创建自定义宏,也可以使用宏中允许的字符串操作。请参阅(例如,您可以使用EndsWith或Trimstart或类似的工具)

    但是,我认为最好的方法是创建一个完全适合的自定义宏。可能有一些宏和宏函数的组合,但我认为只需编写一个自定义函数,就可以100%满足您的需要,这会更快


    此外,您可以查看K#如果有适合的东西-

    是的,有一些宏将解析为“~/{0}/{1}/%”等路径,但它有一些限制。你到底想用它做什么?基本上我想传递“子类别”(理想情况下也是用空格替换所有破折号),并将其传递到文章列表Web部件的“类别”字段,以便我可以获得所有相关内容——我应该补充一点,我想列出的内容完全来自网站的另一部分。但是我想使用“子类别”进行过滤。级别是否在不同的深度?例如,有时是1/1/2,有时是1/2/3?如果是这样,宏解决方案可能不是解决方案。为什么不先使用默认文档路径,然后使用转换和选定项转换呢?老实说,我不知道该怎么做。老实说,我认为宏可以解决我的问题——我想要检索的内容总是处于同一级别。我想做宏的原因是我有20个不同的“子类别”级别的页面。我不希望他们都有一个特别的模板,这样我就可以明确地为每个页面指定要显示的内容。谢谢,我理解你的建议。这将适用于我上周解决的另一种情况的问题。我需要按实际的Kentico类别过滤内容(基本上类似于标签的类别)。在我的第一篇文章中,我可能没有足够清楚地表达这一点,很抱歉。@Codehelpneeded:那么你是说
    Category/Subcategory
    不是页面文档类型,它们是正式的Kentico类别,您正在使用它们进行URL映射,以显示网站上设置为使用这些正式Kentico类别的所有文档?类别/子类别是页面文档类型。我想做的是从URL中检索子类别,并将其用作搜索字符串(它与Kentico Cateogray的名称匹配)@CodeHelpRequired:search into What?Web部件属性路径、搜索结果、自定义表等。?