虽然我大致与凯文Obee利用的说法,我认为这是值得提醒自己的是,在Sitecore的两个截然不同的角色正在使用的控制器:
- 页级控制器(按项目路线调用)
- 组件级控制器(由redering机制调用)
何时使用:自控制器/默认Sitecore的控制器
页面级别控制器
匹配的任何一个项目的路径将默认使用的Sitecore.Mvc.Controllers.SitecoreController
的Index
行动路线。此操作将根据项目的布局配置返回ViewResult。
如果您需要更改此行为(例如影响整个页面的行为),您可以指定项目上的自定义控制器和操作(或项目的标准值)。对于自定义控制器,您可以自定义控制器或继承默认控制器。
组件级控制器
对于ViewRendering
Sitecore的呈现,而无需剃刀意见为特定的控制器(嗯,我想它的页面级控制器是在玩 - 但试想一下,Sitecore的提供了一个默认的控制器使用mvc.getModel管道获取模型并将其提供给Razor视图)。
对于ControllerRendering
您提供了一个可以执行逻辑的自定义控制器(请参阅凯文的答案)并为该视图提供模型。子类Sitecore.Mvc.Controllers.SitecoreController
没有任何好处。
何时控制器调用
页面级别控制器
页面级控制器上的动作是由路由引擎调用。
组件级控制器
作为页面视图呈现上的ControllerRendering动作被调用。
使用效益:自定义控制器/默认Sitecore的控制器
在默认Sitecore的控制器定制控制器的好处是,你在逻辑控制。使用默认的Sitecore控制器的好处是Sitecore为您提供逻辑。
我们应该包括浏览
号(见凯文的答案)
谢谢herskinduk – 2013-03-10 08:03:47