Umbraco路由
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Umbraco路由相关的知识,希望对你有一定的参考价值。
我正在研究由Visual Studio中的一些人与Umbraco合作开发的项目。起初,我认为这是一个基于Umbraco的.NET MVC应用程序。但是,经过更彻底的研究后,我可以说它与.NET MVC应用程序无关。没有控制器,解决方案中既没有program.cs也没有startup.cs。相反,umbraco和umbraco_client文件夹中有umbraco文件。
当然,一切正常。但是怎么样?例如,当我们写:localhost:50174/go/apply it can find the correct Umbraco content node.
谁负责路由,因为没有MVC路由?
如上所述,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
我相信它是带下划线的代码,用于处理Umbraco中的路由,这就是为什么你找不到你想要的文件的原因。
以下网址可能会对您有所帮助:https://our.umbraco.org/documentation/reference/routing/Request-Pipeline/
上面的文章解释了它是如何工作的。不知道你为什么要找它。如果你想劫持默认路由,请转到surfacecontroller并编写自己的控制器和逻辑来处理视图。以下链接可能对您感兴趣:
https://our.umbraco.org/documentation/reference/routing/surface-controllers
以上是关于Umbraco路由的主要内容,如果未能解决你的问题,请参考以下文章