【问题标题】:Umbraco routingUmbraco 路由
【发布时间】:2018-02-19 12:35:40
【问题描述】:

我正在研究一个由 Visual Studio 中的一些人开发的项目,该项目与 Umbraco 合作。起初,我认为这是一个 .NET MVC 应用程序,Umbraco 位于其之上。但是,经过更彻底的研究后,我可以说它与 .NET MVC 应用程序无关。没有控制器,解决方案中既没有 program.cs 也没有 startup.cs。相反,umbraco 和 umbraco_client 文件夹中有 umbraco 文件。

当然,一切正常。但是怎么做?例如当我们写:localhost:50174/go/apply it can find the correct Umbraco content node. 由于没有 MVC 路由,谁负责路由?

【问题讨论】:

    标签: routing umbraco umbraco7


    【解决方案1】:

    如前所述,默认情况下,Umbraco 内部处理 Umbraco 站点的路由。用于渲染它的控制器是 RenderMvcController 这里: https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web/Mvc/RenderMvcController.cs

    Umbraco 在 .NET MVC 应用程序中运行,因此您认为它与 MVC 无关的假设实际上是不正确的。完全可以像在任何其他 .NET MVC 应用程序中一样注册自己的路线和区域。默认情况下 - Umbraco 只是注册其管道以根据其管理的内容处理请求(毕竟它是一个内容管理系统)。当你输入像/go/apply 这样的URL 时,Umbraco 有一个ContentFinder 来定位与这个URL 路径对应的内容,然后使用RenderMvcController 呈现内容(当然除非路由被劫持)。

    您可以在此处查看 URL 内容查找器:https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web/Routing/ContentFinderByNiceUrl.cs

    【讨论】:

      【解决方案2】:

      我相信它是在 Umbraco 中处理路由的带下划线的代码,这就是为什么您找不到您要查找的文件的原因。

      以下网址可能会有所帮助: https://our.umbraco.org/documentation/reference/routing/Request-Pipeline/

      上面的文章解释了它的实际工作原理。不知道你为什么要找它。如果您想劫持默认路由,请使用表面控制器并编写您自己的控制器和逻辑来处理视图。您可能会感兴趣以下链接:

      https://our.umbraco.org/documentation/reference/routing/surface-controllers

      【讨论】:

      • 如果要路由 301 重定向规则会发生什么?在这种情况下,该路由没有内容,并且 Umbraco 实际上总是等待找到内容。你有没有遇到过这个问题?
      猜你喜欢
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-10
      相关资源
      最近更新 更多