0

我需要在 Sitecore 中添加一个页面:

  • abc.com/link1?id=1*something=BLABLA
  • abc.com/link2?id=2*something=BLABLA
  • abc.com/linkN?id=N*something=BLABLA

上面的所有链接都代表一个页面,该页面反过来为用户提供基于link1, link2...的模板linkN

4

3 回答 3

1

这也是一个可能证明有帮助的链接Learn sitecore。非常简洁,我的一般方法是创建一个模板,在内容下创建一个页面,然后分配一个将其链接到 asp.net 内容的布局。

于 2012-09-18T16:57:02.273 回答
1

在我看来,您可以只创建三个新项目(link1link2linkN)。这些项目可以共享相同的“基本”模板,其中包含它们共有的所有内容(布局、通用/共享控件等)。在那里形成,如果您需要每个项目略有不同,您可以为从基本模板继承的每个项目创建一组新的模板(推荐),或者直接修改每个项目的演示详细信息。

也就是说,如果你真的需要一个接受多个路由和查询字符串的项目,你有几个选择:

  1. 如果该项目存在于您站点的根目录中,您可以创建一个项目并为您希望路由到该项目的任何其他名称创建别名。例如,名为link的项目可以具有 link1link2linkN等的别名。查询字符串将适用于所有别名页面。使用这种方法,您不会像您描述的那样更改“布局”。相反,您的布局(或一个或多个子布局)将对可用的查询字符串做出反应并提供不同的视图和/或行为。我喜欢称这使子布局“更智能”:)

  2. 如果您需要一个更强大的解决方案,允许在站点根目录之外进行路由,您可能需要考虑在 HttpRequest 管道中扩展 UrlResolver。

于 2012-09-18T17:37:24.143 回答
0

如果您想使用单个项目来处理所有三个链接,您还可以使用通配符项目,您可以在其中从 httpcontext 读取查询字符串,并根据查询字符串执行任何您想做的事情。

看到您的问题时,我想到的另一件事是:您想通过查询来实现什么?可能是我,但这看起来有点像您正在尝试使用基于 joomla(或其他 cms)的 url 技术创建一个 Sitecore 站点。

于 2012-09-18T18:51:28.100 回答