嵌套通配符处理Sitecore中的虚拟项目

时间:2012-05-02 12:27:52

标签: c# sitecore wildcard

TLDR;在多个级别处理复杂虚拟物品的最佳或推荐方法是什么?

我正在开发一些目前的东西,而不是使用查询字符串变量来过滤属性,我只想扩展URL并允许这些URL过滤。
事件:
~/events/2012/april
~/events/lunches
~/events/6CB27D08-358E-49AA-8107-16A50E963C70

我目前有一个通配符设置来处理最后一个案例或一年,但遇到了只处理一个级别的通配符的障碍,所以我只能用一个通配符处理/events/{0}/{1}。此外,我相信常见的友好网址最终会成为/events/2012/april/<external_id>_<event_name>

使用通配符,我需要将它们分为三层,使用三种不同的布局来处理我目前所知的每种情况

Events/
        *
          *
            *

是否有更好的方法或更推荐的方法来处理多个级别的复杂虚拟物品?

2 个答案:

答案 0 :(得分:3)

您在此处的路径正确,而且您的正确性是因为您需要为网址的每个网段添加一个通配符项。但是,仅仅因为存在通配符并不意味着您需要使用它。换句话说,/events/*/*项会处理/events/2012/april网址。

您可能需要查看导致http://www.sitecore.net/Community/Technical-Blogs/Getting-to-Know-Sitecore/Posts/2011/09/Wildcards-and-Data-Driven-URLs.aspx

的博文Wildcard Module

答案 1 :(得分:2)

使用通配符是否有特定原因? 我认为如果你的深度超过1级,你最好使用URL重写 通配符。

所以只制作/events项并将/events/{0}/{1}重写为/events?year={0}&month={1}