雖然我大致與凱文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