sitecore - 将 Sitecore 路由映射到项目/ Controller

标签 sitecore sitecore7 sitecore-mvc sitecore7.1

我有一个 Sitecore 7.1 网站,我正在尝试找出为博客实现标签搜索的最佳方法是什么。

理想情况下,我希望有一个像这样的网址:/tags/tag-goes-here

我的内容树中应该有一个 sitecore/content/home/tags 项目,以便我可以使用 Sitecore 编辑内容等。我希望像上面这样的所有路由都映射到该项目,并能够以某种方式将“tag-goes-here”参数获取到我的 Controller /渲染中。

我尝试过使用路线,但我不确定这是否是正确的方法。它映射到一个简单的 Controller ,但我可能走错了路。我为此添加了以下路线:

routes.MapRoute(
            "Tags",
            "tags/{tag}",
          new
          {
              controller = "Tag", 
              action = "Index", 
              tag = UrlParameter.Optional, 
          });

它可以工作,但并不能完全达到我想要的效果。它只是在浏览器中呈现我的 View ,但我无法使用 Sitecore 添加任何呈现或内容,因为 Sitecore 中没有匹配的项目。在 Sitecore MVC 中解决这个问题的最佳方法是什么?

谢谢。

最佳答案

通过按原样指定路由并指定 Controller ,您实际上绕过了 Sitecore。请参阅 Sitecore MVC Developers Guide 的第 4.1 节

您可以使用通配符项目(Reusing and Sharing Data 文档的第 1.2.6 节)来处理标签,这将允许您像处理任何其他 Sitecore 项目一样处理项目并添加布局/渲染/规则等。

您可以在这里找到一些相关示例:Sitecore MVC Music Store ,这是一个 Sitecore 6.6 示例,但概念仍然相同。

您还可以查看 Wildcard Module但看看 source code我不确定它是否适用于 MVC,因为有一些 WebForms 特定代码,但它应该很容易修改。

关于sitecore - 将 Sitecore 路由映射到项目/ Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21498271/

相关文章:

angularjs - 使用 AngularJS 和 Sitecore (SPA) 构建单页应用程序

asp.net - 项目保存时出错 - 未找到字段 : 'Store.COMPRESS'

c# - 如何对返回采用模型的 View 的 GlassController 操作进行单元测试

sitecore - 我们可以在 Sitecore CMS 7.2 rev.140526 中运行 MVC4 应用程序还是需要 MVC5?

c# - 在 Sitecore 中使用 Glassmapper 映射图像

使用指定用户登录后 Sitecore Tracker 为空

sitecore - 为营销人员禁用 Web 表单分析

sitecore - 使用 Glass Mapper 在 Sitecore MVC View 中继承模型和渲染参数

content-management-system - 下载和安装 Sitecore CMS 时遇到问题

html - 使用 Razor/Sitecore 编辑 CSS